From a47b6636968c38ae4a78dc1db154df55a4f48bf0 Mon Sep 17 00:00:00 2001 From: Yelfra Date: Sat, 4 Apr 2026 12:18:52 +0200 Subject: [PATCH 1/7] Refactor BlockTagsME to closer resemble vanilla BlockTags --- .../net/sevenstars/middleearth/utils/BlockTagsME.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/utils/BlockTagsME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/utils/BlockTagsME.java index 07d2536ef2..e1bc7dd3f7 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/utils/BlockTagsME.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/utils/BlockTagsME.java @@ -1,10 +1,15 @@ package net.sevenstars.middleearth.utils; import net.minecraft.block.Block; -import net.minecraft.item.Item; import net.minecraft.registry.RegistryKeys; import net.minecraft.registry.tag.TagKey; +import net.minecraft.util.Identifier; +import net.sevenstars.middleearth.MiddleEarth; public class BlockTagsME { - public static TagKey CURTAINS = TagKey.of(RegistryKeys.BLOCK, IdentifierUtil.create("curtains")); + public static final TagKey CURTAINS = of("curtains"); + + private static TagKey of(String id) { + return TagKey.of(RegistryKeys.BLOCK, Identifier.of(MiddleEarth.MOD_ID, id)); + } } From e5a17296a7420c57caa850fdcf1c68ad5a42fcfc Mon Sep 17 00:00:00 2001 From: Yelfra Date: Sat, 4 Apr 2026 12:36:56 +0200 Subject: [PATCH 2/7] Substitute Registries path calls with variable --- .../providers/BlockLootTableProvider.java | 39 ++++++++++--------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/BlockLootTableProvider.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/BlockLootTableProvider.java index 78332d6ad7..87e8fd602d 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/BlockLootTableProvider.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/BlockLootTableProvider.java @@ -53,43 +53,44 @@ public BlockLootTableProvider(FabricDataOutput dataOutput, CompletableFuture Date: Sat, 4 Apr 2026 12:40:11 +0200 Subject: [PATCH 3/7] Replace tag string lookups with existing BlockTags (partial) --- .../providers/tags/BlockTagProvider.java | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/tags/BlockTagProvider.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/tags/BlockTagProvider.java index 873e35e07b..c0a6984fea 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/tags/BlockTagProvider.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/tags/BlockTagProvider.java @@ -2,6 +2,7 @@ import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider; +import net.minecraft.registry.tag.BlockTags; import net.sevenstars.middleearth.MiddleEarth; import net.minecraft.block.Block; import net.minecraft.block.Blocks; @@ -23,21 +24,21 @@ public BlockTagProvider(FabricDataOutput output, CompletableFuture Date: Sat, 4 Apr 2026 12:52:33 +0200 Subject: [PATCH 4/7] Replace vanilla tag string lookups with existing BlockTags --- .../providers/tags/BlockTagProvider.java | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/tags/BlockTagProvider.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/tags/BlockTagProvider.java index c0a6984fea..6c4889c25a 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/tags/BlockTagProvider.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/tags/BlockTagProvider.java @@ -43,11 +43,11 @@ protected void configure(RegistryWrapper.WrapperLookup arg) { var seat = valueLookupBuilder(TagKey.of(RegistryKeys.BLOCK, Identifier.of(MiddleEarth.MOD_ID, "seat"))); var table = valueLookupBuilder(TagKey.of(RegistryKeys.BLOCK, Identifier.of(MiddleEarth.MOD_ID, "table"))); - var leaves = valueLookupBuilder(TagKey.of(RegistryKeys.BLOCK, Identifier.of("leaves"))); + var leaves = valueLookupBuilder(BlockTags.LEAVES); - var wool = valueLookupBuilder(TagKey.of(RegistryKeys.BLOCK, Identifier.of("wool"))); + var wool = valueLookupBuilder(BlockTags.WOOL); - var snapsGoatHorn = valueLookupBuilder(TagKey.of(RegistryKeys.BLOCK, Identifier.of("snaps_goat_horn"))); + var snapsGoatHorn = valueLookupBuilder(BlockTags.SNAPS_GOAT_HORN); var cobwebs = valueLookupBuilder(TagKey.of(RegistryKeys.BLOCK, Identifier.of(MiddleEarth.MOD_ID, "cobwebs"))); @@ -61,24 +61,24 @@ protected void configure(RegistryWrapper.WrapperLookup arg) { swordEfficient.add(LeavesSets.leaves.toArray(new Block[0])); - valueLookupBuilder(TagKey.of(RegistryKeys.BLOCK, Identifier.of( "saplings"))).add(Saplings.saplings.toArray(new Block[0])); - valueLookupBuilder(TagKey.of(RegistryKeys.BLOCK, Identifier.of( "doors"))).add(Doors.doors.toArray(new Block[0])); - valueLookupBuilder(TagKey.of(RegistryKeys.BLOCK, Identifier.of( "trapdoors"))).add(Trapdoors.trapdoors.toArray(new Block[0])); - valueLookupBuilder(TagKey.of(RegistryKeys.BLOCK, Identifier.of( "buttons"))).add(Buttons.buttons.toArray(new Block[0])); - valueLookupBuilder(TagKey.of(RegistryKeys.BLOCK, Identifier.of( "fences"))).add(Fences.fences.toArray(new Block[0])); - valueLookupBuilder(TagKey.of(RegistryKeys.BLOCK, Identifier.of( "wooden_fences"))).add(Fences.fences.toArray(new Block[0])); - valueLookupBuilder(TagKey.of(RegistryKeys.BLOCK, Identifier.of( "fence_gates"))).add(FenceGates.fenceGates.toArray(new Block[0])); - valueLookupBuilder(TagKey.of(RegistryKeys.BLOCK, Identifier.of( "logs"))).add(Logs.logs.toArray(new Block[0])); - valueLookupBuilder(TagKey.of(RegistryKeys.BLOCK, Identifier.of( "pressure_plates"))).add(PressurePlates.pressurePlates.toArray(new Block[0])); - valueLookupBuilder(TagKey.of(RegistryKeys.BLOCK, Identifier.of( "walls"))).add(Walls.walls.toArray(new Block[0])); - valueLookupBuilder(TagKey.of(RegistryKeys.BLOCK, Identifier.of( "planks"))).add(Planks.planks.toArray(new Block[0])); - valueLookupBuilder(TagKey.of(RegistryKeys.BLOCK, Identifier.of( "crops"))).add(Crops.crops.toArray(new Block[0])); + valueLookupBuilder(BlockTags.SAPLINGS).add(Saplings.saplings.toArray(new Block[0])); + valueLookupBuilder(BlockTags.DOORS).add(Doors.doors.toArray(new Block[0])); + valueLookupBuilder(BlockTags.TRAPDOORS).add(Trapdoors.trapdoors.toArray(new Block[0])); + valueLookupBuilder(BlockTags.BUTTONS).add(Buttons.buttons.toArray(new Block[0])); + valueLookupBuilder(BlockTags.FENCES).add(Fences.fences.toArray(new Block[0])); + valueLookupBuilder(BlockTags.WOODEN_FENCES).add(Fences.fences.toArray(new Block[0])); + valueLookupBuilder(BlockTags.FENCE_GATES).add(FenceGates.fenceGates.toArray(new Block[0])); + valueLookupBuilder(BlockTags.LOGS).add(Logs.logs.toArray(new Block[0])); + valueLookupBuilder(BlockTags.PRESSURE_PLATES).add(PressurePlates.pressurePlates.toArray(new Block[0])); + valueLookupBuilder(BlockTags.WALLS).add(Walls.walls.toArray(new Block[0])); + valueLookupBuilder(BlockTags.PLANKS).add(Planks.planks.toArray(new Block[0])); + valueLookupBuilder(BlockTags.CROPS).add(Crops.crops.toArray(new Block[0])); //Ores - TagKey iron_ores = TagKey.of(RegistryKeys.BLOCK, Identifier.of( "iron_ores")); - TagKey gold_ores = TagKey.of(RegistryKeys.BLOCK, Identifier.of( "gold_ores")); - TagKey copper_ores = TagKey.of(RegistryKeys.BLOCK, Identifier.of( "copper_ores")); - TagKey coal_ores = TagKey.of(RegistryKeys.BLOCK, Identifier.of( "coal_ores")); + TagKey iron_ores = BlockTags.IRON_ORES; + TagKey gold_ores = BlockTags.GOLD_ORES; + TagKey copper_ores = BlockTags.COPPER_ORES; + TagKey coal_ores = BlockTags.COAL_ORES; TagKey tin_ores = TagKey.of(RegistryKeys.BLOCK, Identifier.of(MiddleEarth.MOD_ID, "tin_ores")); TagKey lead_ores = TagKey.of(RegistryKeys.BLOCK, Identifier.of(MiddleEarth.MOD_ID, "lead_ores")); From efeb027aee1a8a11853bd8a2e6a235681ffd9a70 Mon Sep 17 00:00:00 2001 From: Yelfra Date: Sun, 5 Apr 2026 01:20:02 +0200 Subject: [PATCH 5/7] Refactor datagen tag collections, Merge classes --- .../middleearth/MiddleEarthClient.java | 5 +- .../block/registration/GenericBlockSets.java | 1 - .../block/registration/ModNatureBlocks.java | 8 +- .../datageneration/HelpingGenerator.java | 70 ++--- .../content/tags/BlockTagCollectionsME.java | 177 +++++++++++++ .../tags/MineableBlockTagCollectionsME.java | 244 ++++++++++++++++++ .../providers/models/BlockModelProvider.java | 4 +- .../providers/tags/BlockTagProvider.java | 44 ++-- .../providers/tags/ItemTagProvider.java | 22 +- .../middleearth/registries/RegistriesME.java | 9 +- 10 files changed, 503 insertions(+), 81 deletions(-) create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/BlockTagCollectionsME.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/MineableBlockTagCollectionsME.java diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/MiddleEarthClient.java b/middle-earth/src/main/java/net/sevenstars/middleearth/MiddleEarthClient.java index 8cf627167b..98598fa5f9 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/MiddleEarthClient.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/MiddleEarthClient.java @@ -6,7 +6,6 @@ import net.minecraft.block.Block; import net.minecraft.client.gui.screen.ingame.HandledScreens; import net.minecraft.client.render.BlockRenderLayer; -import net.minecraft.client.render.block.BlockModelRenderer; import net.minecraft.client.render.block.entity.BlockEntityRendererFactories; import net.minecraft.client.render.entity.FlyingItemEntityRenderer; import net.minecraft.client.render.entity.model.EntityModelLayer; @@ -39,7 +38,7 @@ import net.sevenstars.middleearth.client.renderer.handheld.KiteShieldModelRenderer; import net.sevenstars.middleearth.client.renderer.handheld.RoundShieldModelRenderer; import net.sevenstars.middleearth.datageneration.content.models.*; -import net.sevenstars.middleearth.datageneration.content.tags.Crops; +import net.sevenstars.middleearth.datageneration.content.tags.BlockTagCollectionsME; import net.sevenstars.middleearth.entity.ModEntities; import net.sevenstars.middleearth.entity.barrel.BarrelEntityRenderer; import net.sevenstars.middleearth.entity.barrow_wights.BarrowWightEntityRenderer; @@ -390,7 +389,7 @@ private void initializeRenderLayerMap() { BlockRenderLayerMap.putBlock(ModDecorativeBlocks.RUINED_DWARVEN_DOOR, BlockRenderLayer.CUTOUT); BlockRenderLayerMap.putBlock(ModDecorativeBlocks.LIGHT_BLUE_HOBBIT_DOOR, BlockRenderLayer.CUTOUT); - for (Block block : Crops.crops){ + for (Block block : BlockTagCollectionsME.CROPS){ BlockRenderLayerMap.putBlock(block, BlockRenderLayer.CUTOUT); } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/block/registration/GenericBlockSets.java b/middle-earth/src/main/java/net/sevenstars/middleearth/block/registration/GenericBlockSets.java index 29c40cc364..e94936e786 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/block/registration/GenericBlockSets.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/block/registration/GenericBlockSets.java @@ -9,7 +9,6 @@ import net.sevenstars.middleearth.block.utils.BlockSetRegistration; import net.sevenstars.middleearth.block.utils.setBuilders.GenericBlockSetBuilder; import net.sevenstars.middleearth.block.utils.setBuilders.OxidizableBlockSetBuilder; -import net.sevenstars.middleearth.datageneration.content.tags.WoodenSlabs; import net.sevenstars.middleearth.item.utils.ItemGroupsME; import java.util.ArrayList; diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/block/registration/ModNatureBlocks.java b/middle-earth/src/main/java/net/sevenstars/middleearth/block/registration/ModNatureBlocks.java index b01212ff7b..630c396609 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/block/registration/ModNatureBlocks.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/block/registration/ModNatureBlocks.java @@ -11,7 +11,7 @@ import net.sevenstars.middleearth.block.special.shelobiteeggs.ShelobiteLarvaEggHangingBlock; import net.sevenstars.middleearth.datageneration.content.TranslationEntries; import net.sevenstars.middleearth.datageneration.content.models.TintableCrossModel; -import net.sevenstars.middleearth.datageneration.content.tags.Saplings; +import net.sevenstars.middleearth.datageneration.content.tags.BlockTagCollectionsME; import net.sevenstars.middleearth.item.utils.ItemGroupsME; import net.sevenstars.middleearth.registries.RegistryAliases; import net.sevenstars.middleearth.world.features.tree.ModTreeConfiguredFeatures; @@ -595,7 +595,11 @@ public static Block registerSimpleSapling(String name, RegistryKey BlockTagCollectionsME.SAPLINGS.add(resultBlock); + // Blocks should not be tagged during registering, temp solution - add SIMPLE! saplings manually to SAPLINGS + // TODO: @Yelfra | Remove comment later TranslationEntries.blockEntries.add(resultBlock); RegistryAliases.aliases.add(new RegistryAliases.Alias(Registries.BLOCK, name)); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/HelpingGenerator.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/HelpingGenerator.java index 54162627b6..1e1d6a835c 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/HelpingGenerator.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/HelpingGenerator.java @@ -93,9 +93,9 @@ public static void generateFiles() { case LEAVES -> { if (!Objects.equals(Registries.BLOCK.getId(set.leaves).getNamespace(), "minecraft")){ if (set.setName.contains("beech")){ - LeavesSets.grayscaleLeaves.add(set.leaves); + BlockTagCollectionsME.GRAYSCALE_LEAVES.add(set.leaves); } else { - LeavesSets.leaves.add(set.leaves); + BlockTagCollectionsME.LEAVES.add(set.leaves); } } } @@ -107,7 +107,7 @@ public static void generateFiles() { regularBlocks(set.blockSet); } - SimpleBlockModel.blocks.addAll(LeavesSets.leaves); + SimpleBlockModel.blocks.addAll(BlockTagCollectionsME.LEAVES); for (SimpleVerticalSlabModel.VerticalSlab set : SimpleVerticalSlabModel.vanillaVerticalSlabs) { BlockDrops.blocks.add(set.verticalSlab()); @@ -115,87 +115,87 @@ public static void generateFiles() { for(SimpleWoodStoolModel.VanillaStool stool : SimpleWoodStoolModel.vanillaStools){ BlockDrops.blocks.add(stool.base()); - MineableAxe.blocks.add(stool.base()); + MineableBlockTagCollectionsME.AXE.add(stool.base()); } for(SimpleWoodBenchModel.VanillaBench bench : SimpleWoodBenchModel.vanillaBenchs){ BlockDrops.blocks.add(bench.base()); - MineableAxe.blocks.add(bench.base()); + MineableBlockTagCollectionsME.AXE.add(bench.base()); } for(SimpleWoodTableModel.VanillaTable table : SimpleWoodTableModel.vanillaTables) { BlockDrops.blocks.add(table.base()); - MineableAxe.blocks.add(table.base()); + MineableBlockTagCollectionsME.AXE.add(table.base()); } for(SimpleWoodChairModel.VanillaChair chair : SimpleWoodChairModel.vanillaChairs){ BlockDrops.blocks.add(chair.base()); - MineableAxe.blocks.add(chair.base()); + MineableBlockTagCollectionsME.AXE.add(chair.base()); } SimpleWallModel.vanillaWalls.forEach(block -> { - Walls.walls.add(block.wall()); + BlockTagCollectionsME.WALLS.add(block.wall()); }); SimpleWallModel.vanillaWoodWalls.forEach(block -> { - Walls.walls.add(block.wall()); - MineableAxe.blocks.add(block.wall()); + BlockTagCollectionsME.WALLS.add(block.wall()); + MineableBlockTagCollectionsME.AXE.add(block.wall()); }); SimpleWallModel.vanillaStrippedWalls.forEach(block -> { - Walls.walls.add(block.wall()); - MineableAxe.blocks.add(block.wall()); + BlockTagCollectionsME.WALLS.add(block.wall()); + MineableBlockTagCollectionsME.AXE.add(block.wall()); }); SimpleFenceModel.vanillaWoodFences.forEach(block -> { - Fences.fences.add(block.fence()); - MineableAxe.blocks.add(block.fence()); + BlockTagCollectionsME.FENCES.add(block.fence()); + MineableBlockTagCollectionsME.AXE.add(block.fence()); }); SimpleFenceModel.vanillaStrippedFences.forEach(block -> { - Fences.fences.add(block.fence()); - MineableAxe.blocks.add(block.fence()); + BlockTagCollectionsME.FENCES.add(block.fence()); + MineableBlockTagCollectionsME.AXE.add(block.fence()); }); for (OreRockSets.OreRockSet set : OreRockSets.sets) { if(set.coal_ore() != null){ SimpleBlockModel.blocks.add(set.coal_ore()); - MineablePickaxe.blocks.add(set.coal_ore()); + MineableBlockTagCollectionsME.PICKAXE.add(set.coal_ore()); } if(set.copper_ore() != null){ SimpleBlockModel.blocks.add(set.copper_ore()); - MineablePickaxe.blocks.add(set.copper_ore()); + MineableBlockTagCollectionsME.PICKAXE.add(set.copper_ore()); } if(set.tin_ore() != null){ SimpleBlockModel.blocks.add(set.tin_ore()); - MineablePickaxe.blocks.add(set.tin_ore()); + MineableBlockTagCollectionsME.PICKAXE.add(set.tin_ore()); } if(set.lead_ore() != null){ SimpleBlockModel.blocks.add(set.lead_ore()); - MineablePickaxe.blocks.add(set.lead_ore()); + MineableBlockTagCollectionsME.PICKAXE.add(set.lead_ore()); } if(set.silver_ore() != null){ SimpleBlockModel.blocks.add(set.silver_ore()); - MineablePickaxe.blocks.add(set.silver_ore()); + MineableBlockTagCollectionsME.PICKAXE.add(set.silver_ore()); } if(set.gold_ore() != null){ SimpleBlockModel.blocks.add(set.gold_ore()); - MineablePickaxe.blocks.add(set.gold_ore()); + MineableBlockTagCollectionsME.PICKAXE.add(set.gold_ore()); } if(set.iron_ore() != null){ SimpleBlockModel.blocks.add(set.iron_ore()); - MineablePickaxe.blocks.add(set.iron_ore()); + MineableBlockTagCollectionsME.PICKAXE.add(set.iron_ore()); } if(set.mithril_ore() != null){ SimpleBlockModel.blocks.add(set.mithril_ore()); - MineablePickaxe.blocks.add(set.mithril_ore()); + MineableBlockTagCollectionsME.PICKAXE.add(set.mithril_ore()); } } } public static void addBlocksToLists(Block block, Block base, Block origin){ - MineablePickaxe.blocks.add(block); + MineableBlockTagCollectionsME.PICKAXE.add(block); BlockDrops.blocks.add(block); String blockName = block.getName().toString(); @@ -246,7 +246,7 @@ public static void addBlocksToLists(Block block, Block base, Block origin){ } } case WallBlock wallBlock -> { - Walls.walls.add(wallBlock); + BlockTagCollectionsME.WALLS.add(wallBlock); if (isPillar){ SimpleWallModel.columnWalls.add(new SimpleWallModel.Wall(base, wallBlock)); } else if (blockName.contains("stripped")){ @@ -256,7 +256,7 @@ public static void addBlocksToLists(Block block, Block base, Block origin){ } } case FenceBlock fenceBlock -> { - Fences.fences.add(fenceBlock); + BlockTagCollectionsME.FENCES.add(fenceBlock); if (blockName.contains("stripped")){ SimpleFenceModel.strippedFences.add(new SimpleFenceModel.Fence(base, fenceBlock)); } else { @@ -264,20 +264,20 @@ public static void addBlocksToLists(Block block, Block base, Block origin){ } } case FenceGateBlock fenceGateBlock -> { - FenceGates.fenceGates.add(fenceGateBlock); + BlockTagCollectionsME.FENCE_GATES.add(fenceGateBlock); SimpleFenceGateModel.blocks.add(new SimpleFenceGateModel.FenceGate(base, fenceGateBlock)); } case PaneBlock paneBlock -> SimplePaneModel.panes.add(new SimplePaneModel.Pane(base, paneBlock)); case PressurePlateBlock pressurePlateBlock -> { - PressurePlates.pressurePlates.add(pressurePlateBlock); + BlockTagCollectionsME.PRESSURE_PLATES.add(pressurePlateBlock); SimplePressurePlateModel.pressurePlates.add(new SimplePressurePlateModel.PressurePlate(base, pressurePlateBlock)); } case ButtonBlock buttonBlock -> { - Buttons.buttons.add(buttonBlock); + BlockTagCollectionsME.BUTTONS.add(buttonBlock); SimpleButtonModel.buttons.add(new SimpleButtonModel.Button(base, buttonBlock)); } case TrapdoorBlock trapdoorBlock -> { - Trapdoors.trapdoors.add(trapdoorBlock); + BlockTagCollectionsME.TRAPDOORS.add(trapdoorBlock); if (baseName.contains("planks")){ SimpleTrapDoorModel.trapdoors.add(new SimpleTrapDoorModel.Trapdoor(base, trapdoorBlock, true)); } else { @@ -292,7 +292,7 @@ public static void addBlocksToLists(Block block, Block base, Block origin){ case WoodChairBlock chairBlock -> SimpleWoodChairModel.chairs.add(chairBlock); case WoodBenchBlock benchBlock -> SimpleWoodBenchModel.benchs.add(benchBlock); case DoorBlock doorBlock -> { - Doors.doors.add(doorBlock); + BlockTagCollectionsME.DOORS.add(doorBlock); SimpleDoorModel.doors.add(new SimpleDoorModel.Door(base, doorBlock)); } case ThickLadderBlock ladderBlock -> SimpleLadderModel.ladders.add(new SimpleLadderModel.Ladder(base, ladderBlock)); @@ -326,13 +326,13 @@ public static void mainStoneBlocks(BlockRecordTypes.BaseStoneSet set){ public static void plankBlocks(BlockRecordTypes.PlanksSet set) { BlockRecordTypes.PlanksSet.getAllBlocks(set).forEach(block -> addBlocksToLists(block, set.base(), set.slab())); - Planks.planks.add(set.base()); + BlockTagCollectionsME.PLANKS.add(set.base()); } public static void woodBlocks(BlockRecordTypes.WoodSet set) { BlockRecordTypes.WoodSet.getAllBlocks(set).forEach(block -> addBlocksToLists(block, set.wood(), set.slab())); - Logs.logs.add(set.log()); - Logs.logs.add(set.wood()); + BlockTagCollectionsME.LOGS.add(set.log()); + BlockTagCollectionsME.LOGS.add(set.wood()); } public static void mushroomStemBlocks(BlockRecordTypes.MushroomStemSet set) { diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/BlockTagCollectionsME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/BlockTagCollectionsME.java new file mode 100644 index 0000000000..e98e3e40eb --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/BlockTagCollectionsME.java @@ -0,0 +1,177 @@ +package net.sevenstars.middleearth.datageneration.content.tags; + +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.sevenstars.middleearth.block.registration.ModBlocks; +import net.sevenstars.middleearth.block.registration.ModDecorativeBlocks; +import net.sevenstars.middleearth.block.registration.ModNatureBlocks; +import net.sevenstars.middleearth.world.features.tree.ModTreeConfiguredFeatures; + +import java.util.ArrayList; +import java.util.List; + +public class BlockTagCollectionsME { + public static final List BUTTONS = new ArrayList<>(); + public static final List CROPS = new ArrayList<>(List.of( + ModNatureBlocks.TOMATO_CROP, + ModNatureBlocks.BELL_PEPPER_CROP, + ModNatureBlocks.CUCUMBER_CROP, + ModNatureBlocks.FLAX_CROP, + ModNatureBlocks.GARLIC_CROP, + ModNatureBlocks.LEEK_CROP, + ModNatureBlocks.LETTUCE_CROP, + ModNatureBlocks.ONION_CROP, + ModNatureBlocks.PIPEWEED_CROP + )); + public static final List DOORS = new ArrayList<>(List.of( + ModBlocks.AGED_WOOD_DOOR, + ModBlocks.BRONZE_DOOR, + ModBlocks.CRUDE_DOOR, + ModBlocks.TREATED_STEEL_DOOR + )); + public static final List FENCE_GATES = new ArrayList<>(); + public static final List FENCES = new ArrayList<>(List.of( + ModBlocks.TREATED_WOOD_ROPE_FENCE + )); + public static final List LEAVES = new ArrayList<>(List.of( + ModNatureBlocks.LEBETHRON_LEAVES, + ModNatureBlocks.BERRY_HOLLY_LEAVES, + ModNatureBlocks.DRY_LARCH_LEAVES, + ModNatureBlocks.FLOWERING_MALLORN_LEAVES, + ModNatureBlocks.ORANGE_MAPLE_LEAVES, + ModNatureBlocks.RED_MAPLE_LEAVES, + ModNatureBlocks.YELLOW_MAPLE_LEAVES, + ModNatureBlocks.DRY_PINE_LEAVES + )); + public static final List GRAYSCALE_LEAVES = new ArrayList<>(); + public static final List LOGS = new ArrayList<>(List.of( + ModNatureBlocks.PINE_BRANCHES + )); + public static final List LOGS_THAT_BURN = new ArrayList<>(); + public static final List STRIPPED_LOGS = new ArrayList<>(); + public static final List PLANKS = new ArrayList<>(); + public static final List PRESSURE_PLATES = new ArrayList<>(); + public static final List SAPLINGS = new ArrayList<>(List.of( + ModNatureBlocks.ASPEN_SAPLING, + ModNatureBlocks.BEECH_SAPLING, + ModNatureBlocks.CHESTNUT_SAPLING, + ModNatureBlocks.HOLLY_SAPLING, + ModNatureBlocks.FIR_SAPLING, + ModNatureBlocks.LARCH_SAPLING, + // ModNatureBlocks.LEBETHRON_SAPLING, // variant + ModNatureBlocks.WHITE_LEBETHRON_SAPLING, + ModNatureBlocks.MALLORN_SAPLING, + // ModNatureBlocks.MAPLE_SAPLING, // variant + // ModNatureBlocks.SILVER_MAPLE_SAPLING, // variant + ModNatureBlocks.MIRKWOOD_SAPLING, + // ModNatureBlocks.PALM_SAPLING, // variant + ModNatureBlocks.WHITE_PALM_SAPLING, + ModNatureBlocks.PINE_SAPLING, + ModNatureBlocks.BLACK_PINE_SAPLING, + ModNatureBlocks.WHITE_SPRUCE_SAPLING, + ModNatureBlocks.WILLOW_SAPLING + )); + public static final List shingles = new ArrayList<>(); + public static final List STONES = new ArrayList<>(); + public static final List TRAPDOORS = new ArrayList<>(); + public static final List WALLS = new ArrayList<>(); + public static final List WOODEN_SLABS = new ArrayList<>(); + public static final List WOODEN_VERTICAL_SLABS = new ArrayList<>(); + public static final List WOOL = new ArrayList<>(List.of( + ModBlocks.WHITE_WOOL_SLAB, + ModBlocks.ORANGE_WOOL_SLAB, + ModBlocks.MAGENTA_WOOL_SLAB, + ModBlocks.LIGHT_BLUE_WOOL_SLAB, + ModBlocks.YELLOW_WOOL_SLAB, + ModBlocks.LIME_WOOL_SLAB, + ModBlocks.PINK_WOOL_SLAB, + ModBlocks.GRAY_WOOL_SLAB, + ModBlocks.LIGHT_GRAY_WOOL_SLAB, + ModBlocks.CYAN_WOOL_SLAB, + ModBlocks.PURPLE_WOOL_SLAB, + ModBlocks.BLUE_WOOL_SLAB, + ModBlocks.BROWN_WOOL_SLAB, + ModBlocks.GREEN_WOOL_SLAB, + ModBlocks.RED_WOOL_SLAB, + ModBlocks.BLACK_WOOL_SLAB, + + ModBlocks.WHITE_WOOL_VERTICAL_SLAB, + ModBlocks.ORANGE_WOOL_VERTICAL_SLAB, + ModBlocks.MAGENTA_WOOL_VERTICAL_SLAB, + ModBlocks.LIGHT_BLUE_WOOL_VERTICAL_SLAB, + ModBlocks.YELLOW_WOOL_VERTICAL_SLAB, + ModBlocks.LIME_WOOL_VERTICAL_SLAB, + ModBlocks.PINK_WOOL_VERTICAL_SLAB, + ModBlocks.GRAY_WOOL_VERTICAL_SLAB, + ModBlocks.LIGHT_GRAY_WOOL_VERTICAL_SLAB, + ModBlocks.CYAN_WOOL_VERTICAL_SLAB, + ModBlocks.PURPLE_WOOL_VERTICAL_SLAB, + ModBlocks.BLUE_WOOL_VERTICAL_SLAB, + ModBlocks.BROWN_WOOL_VERTICAL_SLAB, + ModBlocks.GREEN_WOOL_VERTICAL_SLAB, + ModBlocks.RED_WOOL_VERTICAL_SLAB, + ModBlocks.BLACK_WOOL_VERTICAL_SLAB, + + ModBlocks.WHITE_WOOL_STAIRS, + ModBlocks.ORANGE_WOOL_STAIRS, + ModBlocks.MAGENTA_WOOL_STAIRS, + ModBlocks.LIGHT_BLUE_WOOL_STAIRS, + ModBlocks.YELLOW_WOOL_STAIRS, + ModBlocks.LIME_WOOL_STAIRS, + ModBlocks.PINK_WOOL_STAIRS, + ModBlocks.GRAY_WOOL_STAIRS, + ModBlocks.LIGHT_GRAY_WOOL_STAIRS, + ModBlocks.CYAN_WOOL_STAIRS, + ModBlocks.PURPLE_WOOL_STAIRS, + ModBlocks.BLUE_WOOL_STAIRS, + ModBlocks.BROWN_WOOL_STAIRS, + ModBlocks.GREEN_WOOL_STAIRS, + ModBlocks.RED_WOOL_STAIRS, + ModBlocks.BLACK_WOOL_STAIRS, + + ModDecorativeBlocks.SMALL_BLACK_CURTAIN, + ModDecorativeBlocks.SMALL_BLUE_CURTAIN, + ModDecorativeBlocks.SMALL_BROWN_CURTAIN, + ModDecorativeBlocks.SMALL_BURNT_CURTAIN, + ModDecorativeBlocks.SMALL_DARK_BLUE_CURTAIN, + ModDecorativeBlocks.SMALL_DARK_BROWN_CURTAIN, + ModDecorativeBlocks.SMALL_DARK_GREEN_CURTAIN, + ModDecorativeBlocks.SMALL_DARK_RED_CURTAIN, + ModDecorativeBlocks.SMALL_FANCY_BLUE_CURTAIN, + ModDecorativeBlocks.SMALL_FANCY_GREEN_CURTAIN, + ModDecorativeBlocks.SMALL_FANCY_RED_CURTAIN, + ModDecorativeBlocks.SMALL_GRAY_CURTAIN, + ModDecorativeBlocks.SMALL_GREEN_CURTAIN, + ModDecorativeBlocks.SMALL_PURPLE_CURTAIN, + ModDecorativeBlocks.SMALL_RED_CURTAIN, + ModDecorativeBlocks.SMALL_ROTTEN_CURTAIN, + ModDecorativeBlocks.SMALL_WHITE_CURTAIN, + ModDecorativeBlocks.SMALL_YELLOW_CURTAIN, + + ModDecorativeBlocks.BLACK_CURTAIN, + ModDecorativeBlocks.BLUE_CURTAIN, + ModDecorativeBlocks.BROWN_CURTAIN, + ModDecorativeBlocks.BURNT_CURTAIN, + ModDecorativeBlocks.DARK_BLUE_CURTAIN, + ModDecorativeBlocks.DARK_BROWN_CURTAIN, + ModDecorativeBlocks.DARK_GREEN_CURTAIN, + ModDecorativeBlocks.DARK_RED_CURTAIN, + ModDecorativeBlocks.FANCY_BLUE_CURTAIN, + ModDecorativeBlocks.FANCY_GREEN_CURTAIN, + ModDecorativeBlocks.FANCY_RED_CURTAIN, + ModDecorativeBlocks.GRAY_CURTAIN, + ModDecorativeBlocks.GREEN_CURTAIN, + ModDecorativeBlocks.PURPLE_CURTAIN, + ModDecorativeBlocks.RED_CURTAIN, + ModDecorativeBlocks.ROTTEN_CURTAIN, + ModDecorativeBlocks.WHITE_CURTAIN, + ModDecorativeBlocks.YELLOW_CURTAIN + )); + + public static List getItemPlanks() { + return PLANKS.stream().map(Block::asItem).toList(); + } + public static List getItemLogs() { + return LOGS.stream().map(Block::asItem).toList(); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/MineableBlockTagCollectionsME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/MineableBlockTagCollectionsME.java new file mode 100644 index 0000000000..6fbdf74ed8 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/MineableBlockTagCollectionsME.java @@ -0,0 +1,244 @@ +package net.sevenstars.middleearth.datageneration.content.tags; + +import net.minecraft.block.Block; +import net.sevenstars.middleearth.block.registration.ModBlocks; +import net.sevenstars.middleearth.block.registration.ModDecorativeBlocks; +import net.sevenstars.middleearth.block.registration.ModNatureBlocks; + +import java.util.ArrayList; +import java.util.List; + +public class MineableBlockTagCollectionsME { + public static final List AXE = new ArrayList<>(List.of( + ModDecorativeBlocks.BLUE_CUSHION, + ModDecorativeBlocks.BROWN_CUSHION, + ModDecorativeBlocks.DARK_BLUE_CUSHION, + ModDecorativeBlocks.DARK_BROWN_CUSHION, + ModDecorativeBlocks.DARK_GREEN_CUSHION, + ModDecorativeBlocks.DARK_RED_CUSHION, + ModDecorativeBlocks.GREEN_CUSHION, + ModDecorativeBlocks.RED_CUSHION, + + ModNatureBlocks.PINE_BRANCHES, + + ModBlocks.AGED_WOOD_DOOR, + ModDecorativeBlocks.BLUE_HOBBIT_DOOR, + ModDecorativeBlocks.GREEN_HOBBIT_DOOR, + ModDecorativeBlocks.LIGHT_BLUE_HOBBIT_DOOR, + ModDecorativeBlocks.RED_HOBBIT_DOOR, + ModDecorativeBlocks.YELLOW_HOBBIT_DOOR, + ModDecorativeBlocks.LARCH_HOBBIT_DOOR, + ModDecorativeBlocks.SPRUCE_HOBBIT_DOOR, + ModDecorativeBlocks.TALL_BLACK_PINE_DOOR, + ModDecorativeBlocks.OAK_STABLE_DOOR, + ModDecorativeBlocks.REINFORCED_BLACK_PINE_DOOR, + ModDecorativeBlocks.REINFORCED_SPRUCE_DOOR, + ModDecorativeBlocks.SIMPLE_LARCH_GATE, + ModDecorativeBlocks.RICKETY_SIMPLE_LARCH_DOOR, + ModDecorativeBlocks.SPRUCE_STABLE_DOOR, + ModDecorativeBlocks.LARGE_STURDY_DOOR, + ModDecorativeBlocks.LARGE_BEECH_FENCE_GATE, + ModDecorativeBlocks.VARNISHED_DWARVEN_DOOR, + ModDecorativeBlocks.RUINED_DWARVEN_DOOR, + ModDecorativeBlocks.GREAT_ELVEN_GATE, + + ModBlocks.AGED_WOOD_TRAPDOOR, + ModBlocks.BLACK_WATTLE_TRAPDOOR, + ModBlocks.DARK_WATTLE_TRAPDOOR, + ModBlocks.GREEN_WATTLE_TRAPDOOR, + ModBlocks.RED_WATTLE_TRAPDOOR, + ModBlocks.WATTLE_TRAPDOOR, + + ModBlocks.TREATED_WOOD_ROPE_FENCE, + + ModDecorativeBlocks.BELLOWS, + + ModDecorativeBlocks.TREATED_WOOD_LADDER, + ModDecorativeBlocks.TREATED_WOOD_STOOL, + ModDecorativeBlocks.TREATED_WOOD_CHAIR, + ModDecorativeBlocks.TREATED_WOOD_TABLE, + ModDecorativeBlocks.TREATED_WOOD_BENCH, + + ModDecorativeBlocks.THIN_BARREL, + ModDecorativeBlocks.SMALL_CRATE, + + ModNatureBlocks.BROWN_BOLETE_BLOCK, + ModNatureBlocks.CAVE_AMANITA_BLOCK, + ModNatureBlocks.DEEP_FIRECAP_BLOCK, + ModNatureBlocks.SKY_FIRECAP_BLOCK, + ModNatureBlocks.YELLOW_AMANITA_BLOCK, + + ModNatureBlocks.AZALEA_FLOWER_GROWTH, + ModNatureBlocks.DRY_GROWTH, + ModNatureBlocks.FROZEN_GROWTH, + ModNatureBlocks.GREEN_GROWTH, + ModNatureBlocks.IVY_GROWTH, + ModNatureBlocks.LILAC_FLOWER_GROWTH, + ModNatureBlocks.PINK_FLOWER_GROWTH, + ModNatureBlocks.RED_FLOWER_GROWTH, + ModNatureBlocks.THORNY_GROWTH, + ModNatureBlocks.WHITE_FLOWER_GROWTH, + ModNatureBlocks.YELLOW_FLOWER_GROWTH + )); + public static final List HOE = new ArrayList<>(List.of( + ModNatureBlocks.LEBETHRON_LEAVES, + ModNatureBlocks.BERRY_HOLLY_LEAVES, + ModNatureBlocks.DRY_LARCH_LEAVES, + + ModNatureBlocks.FLOWERING_MALLORN_LEAVES, + + ModNatureBlocks.ORANGE_MAPLE_LEAVES, + ModNatureBlocks.RED_MAPLE_LEAVES, + ModNatureBlocks.YELLOW_MAPLE_LEAVES, + + ModNatureBlocks.DRY_PINE_LEAVES + )); + public static final List PICKAXE = new ArrayList<>(List.of( + ModBlocks.POINTED_GALONN, + ModBlocks.POINTED_LIMESTONE, + ModBlocks.POINTED_DOLOMITE, + ModBlocks.POINTED_IZHERABAN, + + ModDecorativeBlocks.BASALT_STATUE, + ModDecorativeBlocks.CALCITE_STATUE, + ModDecorativeBlocks.GALONN_STATUE, + ModDecorativeBlocks.KHAGALABAN_STATUE, + ModDecorativeBlocks.MEDGON_SPIKE, + ModDecorativeBlocks.PUMICE_STATUE, + ModDecorativeBlocks.TUFF_STATUE, + + ModDecorativeBlocks.CRUDE_ROD, + ModDecorativeBlocks.TREATED_STEEL_ROD, + + ModDecorativeBlocks.BRONZE_CHAIN, + ModDecorativeBlocks.BRONZE_BROAD_CHAIN, + ModDecorativeBlocks.CRUDE_CHAIN, + ModDecorativeBlocks.CRUDE_BROAD_CHAIN, + ModDecorativeBlocks.SPIKY_CHAIN, + + ModDecorativeBlocks.CHIMNEY, + + ModBlocks.RAW_MITHRIL_BLOCK, + ModBlocks.MITHRIL_BLOCK, + ModBlocks.RAW_TIN_BLOCK, + ModBlocks.TIN_BLOCK, + ModBlocks.RAW_LEAD_BLOCK, + ModBlocks.LEAD_BLOCK, + ModBlocks.RAW_SILVER_BLOCK, + ModBlocks.SILVER_BLOCK, + + ModBlocks.BRONZE_BLOCK, + ModBlocks.CRUDE_BLOCK, + ModBlocks.STEEL_BLOCK, + ModBlocks.KHAZAD_STEEL_BLOCK, + ModBlocks.EDHEL_STEEL_BLOCK, + ModBlocks.BURZUM_STEEL_BLOCK, + + ModDecorativeBlocks.BIG_BRAZIER, + ModDecorativeBlocks.SMALL_BRAZIER, + + ModDecorativeBlocks.GILDED_BIG_BRAZIER, + ModDecorativeBlocks.GILDED_SMALL_BRAZIER, + + ModDecorativeBlocks.FIRE_BOWL, + ModDecorativeBlocks.BONFIRE, + + ModDecorativeBlocks.SCONCE, + ModDecorativeBlocks.WALL_SCONCE, + + ModDecorativeBlocks.GILDED_SCONCE, + ModDecorativeBlocks.GILDED_WALL_SCONCE, + + ModDecorativeBlocks.ORCISH_SCONCE, + ModDecorativeBlocks.ORCISH_WALL_SCONCE, + + ModBlocks.BRONZE_DOOR, + ModBlocks.CRUDE_DOOR, + ModBlocks.TREATED_STEEL_DOOR, + ModBlocks.BRONZE_TRAPDOOR, + ModBlocks.CRUDE_TRAPDOOR, + ModBlocks.TREATED_STEEL_TRAPDOOR, + + ModBlocks.BRONZE_BARS, + ModBlocks.CRUDE_BARS, + ModBlocks.TREATED_STEEL_BARS, + ModBlocks.BURZUM_BARS, + ModBlocks.GILDED_BARS, + + ModDecorativeBlocks.FORGE, + ModDecorativeBlocks.TREATED_ANVIL, + ModDecorativeBlocks.DWARVEN_TREATED_ANVIL, + ModDecorativeBlocks.ELVEN_TREATED_ANVIL, + ModDecorativeBlocks.ORCISH_TREATED_ANVIL, + + ModDecorativeBlocks.GREAT_GONDORIAN_GATE, + + ModDecorativeBlocks.GREAT_DWARVEN_GATE, + ModDecorativeBlocks.HIDDEN_DWARVEN_DOOR, + + ModDecorativeBlocks.GREAT_ORCISH_GATE, + + ModDecorativeBlocks.TORCH_OF_ORTHANC, + + ModBlocks.SILVER_BARS, + + ModBlocks.COPPER_BARS, + ModBlocks.EXPOSED_COPPER_BARS, + ModBlocks.WEATHERED_COPPER_BARS, + ModBlocks.OXIDIZED_COPPER_BARS, + + ModBlocks.WAXED_COPPER_BARS, + ModBlocks.WAXED_EXPOSED_COPPER_BARS, + ModBlocks.WAXED_WEATHERED_COPPER_BARS, + ModBlocks.WAXED_OXIDIZED_COPPER_BARS, + + ModBlocks.WATTLE_AND_BRICK, + ModBlocks.WATTLE_AND_BRICK_CROSS, + ModBlocks.WATTLE_AND_BRICK_RIGHT, + ModBlocks.WATTLE_AND_BRICK_LEFT, + ModBlocks.WATTLE_AND_BRICK_PILLAR, + ModBlocks.WATTLE_AND_BRICK_DIAMOND, + + ModBlocks.WATTLE_AND_WHITE_DAUB, + ModBlocks.WATTLE_AND_WHITE_DAUB_CROSS, + ModBlocks.WATTLE_AND_WHITE_DAUB_RIGHT, + ModBlocks.WATTLE_AND_WHITE_DAUB_LEFT, + ModBlocks.WATTLE_AND_WHITE_DAUB_PILLAR, + ModBlocks.WATTLE_AND_WHITE_DAUB_DIAMOND, + + ModBlocks.BLACK_WATTLE_AND_WHITE_DAUB, + ModBlocks.BLACK_WATTLE_AND_WHITE_DAUB_CROSS, + ModBlocks.BLACK_WATTLE_AND_WHITE_DAUB_RIGHT, + ModBlocks.BLACK_WATTLE_AND_WHITE_DAUB_LEFT, + ModBlocks.BLACK_WATTLE_AND_WHITE_DAUB_PILLAR, + ModBlocks.BLACK_WATTLE_AND_WHITE_DAUB_DIAMOND, + + ModBlocks.GREEN_WATTLE_AND_WHITE_DAUB, + ModBlocks.GREEN_WATTLE_AND_WHITE_DAUB_CROSS, + ModBlocks.GREEN_WATTLE_AND_WHITE_DAUB_RIGHT, + ModBlocks.GREEN_WATTLE_AND_WHITE_DAUB_LEFT, + ModBlocks.GREEN_WATTLE_AND_WHITE_DAUB_PILLAR, + ModBlocks.GREEN_WATTLE_AND_WHITE_DAUB_DIAMOND, + + ModBlocks.RED_WATTLE_AND_WHITE_DAUB, + ModBlocks.RED_WATTLE_AND_WHITE_DAUB_CROSS, + ModBlocks.RED_WATTLE_AND_WHITE_DAUB_RIGHT, + ModBlocks.RED_WATTLE_AND_WHITE_DAUB_LEFT, + ModBlocks.RED_WATTLE_AND_WHITE_DAUB_PILLAR, + ModBlocks.RED_WATTLE_AND_WHITE_DAUB_DIAMOND, + + ModBlocks.DARK_WATTLE_AND_DARK_DAUB, + ModBlocks.DARK_WATTLE_AND_DARK_DAUB_CROSS, + ModBlocks.DARK_WATTLE_AND_DARK_DAUB_RIGHT, + ModBlocks.DARK_WATTLE_AND_DARK_DAUB_LEFT, + ModBlocks.DARK_WATTLE_AND_DARK_DAUB_PILLAR, + ModBlocks.DARK_WATTLE_AND_DARK_DAUB_DIAMOND, + + ModBlocks.WATTLE_AND_YELLOW_DAUB, + ModBlocks.WATTLE_AND_YELLOW_DAUB_CROSS, + ModBlocks.WATTLE_AND_YELLOW_DAUB_RIGHT, + ModBlocks.WATTLE_AND_YELLOW_DAUB_LEFT, + ModBlocks.WATTLE_AND_YELLOW_DAUB_PILLAR, + ModBlocks.WATTLE_AND_YELLOW_DAUB_DIAMOND + )); +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/models/BlockModelProvider.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/models/BlockModelProvider.java index 5934dfea39..23d54bd82e 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/models/BlockModelProvider.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/models/BlockModelProvider.java @@ -32,7 +32,7 @@ import net.sevenstars.middleearth.block.special.verticalSlabs.VerticalSlabShape; import net.sevenstars.middleearth.datageneration.content.MEModels; import net.sevenstars.middleearth.datageneration.content.models.*; -import net.sevenstars.middleearth.datageneration.content.tags.LeavesSets; +import net.sevenstars.middleearth.datageneration.content.tags.BlockTagCollectionsME; import java.util.Objects; @@ -65,7 +65,7 @@ public void generateBlockStateModels(BlockStateModelGenerator blockStateModelGen blockStateModelGenerator.registerSimpleCubeAll(block); } - for (Block block : LeavesSets.grayscaleLeaves) { + for (Block block : BlockTagCollectionsME.GRAYSCALE_LEAVES) { blockStateModelGenerator.registerTintedBlockAndItem(block, TexturedModel.LEAVES, -12012264); } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/tags/BlockTagProvider.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/tags/BlockTagProvider.java index 6c4889c25a..e449e81ed9 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/tags/BlockTagProvider.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/tags/BlockTagProvider.java @@ -51,28 +51,28 @@ protected void configure(RegistryWrapper.WrapperLookup arg) { var cobwebs = valueLookupBuilder(TagKey.of(RegistryKeys.BLOCK, Identifier.of(MiddleEarth.MOD_ID, "cobwebs"))); - mineableAxe.add(MineableAxe.blocks.toArray(new Block[0])); - mineablePickaxe.add(MineablePickaxe.blocks.toArray(new Block[0])); - - wool.add(Wool.blocks.toArray(new Block[0])); - - leaves.add(LeavesSets.leaves.toArray(new Block[0])); - mineableHoe.add(MineableHoe.blocks.toArray(new Block[0])); - - swordEfficient.add(LeavesSets.leaves.toArray(new Block[0])); - - valueLookupBuilder(BlockTags.SAPLINGS).add(Saplings.saplings.toArray(new Block[0])); - valueLookupBuilder(BlockTags.DOORS).add(Doors.doors.toArray(new Block[0])); - valueLookupBuilder(BlockTags.TRAPDOORS).add(Trapdoors.trapdoors.toArray(new Block[0])); - valueLookupBuilder(BlockTags.BUTTONS).add(Buttons.buttons.toArray(new Block[0])); - valueLookupBuilder(BlockTags.FENCES).add(Fences.fences.toArray(new Block[0])); - valueLookupBuilder(BlockTags.WOODEN_FENCES).add(Fences.fences.toArray(new Block[0])); - valueLookupBuilder(BlockTags.FENCE_GATES).add(FenceGates.fenceGates.toArray(new Block[0])); - valueLookupBuilder(BlockTags.LOGS).add(Logs.logs.toArray(new Block[0])); - valueLookupBuilder(BlockTags.PRESSURE_PLATES).add(PressurePlates.pressurePlates.toArray(new Block[0])); - valueLookupBuilder(BlockTags.WALLS).add(Walls.walls.toArray(new Block[0])); - valueLookupBuilder(BlockTags.PLANKS).add(Planks.planks.toArray(new Block[0])); - valueLookupBuilder(BlockTags.CROPS).add(Crops.crops.toArray(new Block[0])); + mineableAxe.add(MineableBlockTagCollectionsME.AXE.toArray(Block[]::new)); + mineablePickaxe.add(MineableBlockTagCollectionsME.PICKAXE.toArray(Block[]::new)); + + wool.add(BlockTagCollectionsME.WOOL.toArray(Block[]::new)); + + leaves.add(BlockTagCollectionsME.LEAVES.toArray(Block[]::new)); + mineableHoe.add(MineableBlockTagCollectionsME.HOE.toArray(Block[]::new)); + + swordEfficient.add(BlockTagCollectionsME.LEAVES.toArray(Block[]::new)); + + valueLookupBuilder(BlockTags.SAPLINGS).add(BlockTagCollectionsME.SAPLINGS.toArray(Block[]::new)); + valueLookupBuilder(BlockTags.DOORS).add(BlockTagCollectionsME.DOORS.toArray(Block[]::new)); + valueLookupBuilder(BlockTags.TRAPDOORS).add(BlockTagCollectionsME.TRAPDOORS.toArray(Block[]::new)); + valueLookupBuilder(BlockTags.BUTTONS).add(BlockTagCollectionsME.BUTTONS.toArray(Block[]::new)); + valueLookupBuilder(BlockTags.FENCES).add(BlockTagCollectionsME.FENCES.toArray(Block[]::new)); // Repeated fences + valueLookupBuilder(BlockTags.WOODEN_FENCES).add(BlockTagCollectionsME.FENCES.toArray(Block[]::new)); // Repeated fences + valueLookupBuilder(BlockTags.FENCE_GATES).add(BlockTagCollectionsME.FENCE_GATES.toArray(Block[]::new)); + valueLookupBuilder(BlockTags.LOGS).add(BlockTagCollectionsME.LOGS.toArray(Block[]::new)); + valueLookupBuilder(BlockTags.PRESSURE_PLATES).add(BlockTagCollectionsME.PRESSURE_PLATES.toArray(Block[]::new)); + valueLookupBuilder(BlockTags.WALLS).add(BlockTagCollectionsME.WALLS.toArray(Block[]::new)); + valueLookupBuilder(BlockTags.PLANKS).add(BlockTagCollectionsME.PLANKS.toArray(Block[]::new)); + valueLookupBuilder(BlockTags.CROPS).add(BlockTagCollectionsME.CROPS.toArray(Block[]::new)); //Ores TagKey iron_ores = BlockTags.IRON_ORES; diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/tags/ItemTagProvider.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/tags/ItemTagProvider.java index e02dcd6260..97cace70c3 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/tags/ItemTagProvider.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/tags/ItemTagProvider.java @@ -72,10 +72,10 @@ protected void configure(RegistryWrapper.WrapperLookup arg) { TagKey shingles = TagKey.of(RegistryKeys.ITEM, Identifier.of(MiddleEarth.MOD_ID, "shingles")); TagKey mod_stripped_logs = TagKey.of(RegistryKeys.ITEM, Identifier.of(MiddleEarth.MOD_ID, "mod_stripped_logs")); - valueLookupBuilder(TagKey.of(RegistryKeys.ITEM, Identifier.of(MiddleEarth.MOD_ID, "mod_planks"))).add(Planks.getItemPlanks().toArray(new Item[0])); + valueLookupBuilder(TagKey.of(RegistryKeys.ITEM, Identifier.of(MiddleEarth.MOD_ID, "mod_planks"))).add(BlockTagCollectionsME.getItemPlanks().toArray(Item[]::new)); - valueLookupBuilder(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))).add(Planks.getItemPlanks().toArray(new Item[0])); - valueLookupBuilder(TagKey.of(RegistryKeys.ITEM, Identifier.of("logs"))).add(Logs.getItemPlanks().toArray(new Item[0])); + valueLookupBuilder(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))).add(BlockTagCollectionsME.getItemPlanks().toArray(Item[]::new)); + valueLookupBuilder(TagKey.of(RegistryKeys.ITEM, Identifier.of("logs"))).add(BlockTagCollectionsME.getItemLogs().toArray(Item[]::new)); valueLookupBuilder(TagKey.of(RegistryKeys.ITEM, Identifier.of("axes"))).add(WeaponEnchants.axes.toArray(new Item[0])); valueLookupBuilder(TagKey.of(RegistryKeys.ITEM, Identifier.of(MiddleEarth.MOD_ID,"daggers"))).add(WeaponEnchants.daggers.toArray(new Item[0])); @@ -267,31 +267,31 @@ protected void configure(RegistryWrapper.WrapperLookup arg) { SimpleDyeableItemModel.items.forEach(dyeable::add); - WoodenSlabs.woodenSlabs.forEach(block -> { + BlockTagCollectionsME.WOODEN_SLABS.forEach(block -> { valueLookupBuilder(wooden_slabs).add(block.asItem()); }); - WoodenVerticalSlabs.woodenVericalSlabs.forEach(block -> { + BlockTagCollectionsME.WOODEN_VERTICAL_SLABS.forEach(block -> { valueLookupBuilder(wooden_vertical_slabs).add(block.asItem()); }); - Fences.fences.forEach(block -> { + BlockTagCollectionsME.FENCES.forEach(block -> { valueLookupBuilder(wooden_fences).add(block.asItem()); }); - ModdedStrippedLogs.strippedLogs.forEach(block -> { + BlockTagCollectionsME.STRIPPED_LOGS.forEach(block -> { valueLookupBuilder(mod_stripped_logs).add(block.asItem()); }); - Shingles.shingles.forEach(block -> { + BlockTagCollectionsME.shingles.forEach(block -> { valueLookupBuilder(shingles).add(block.asItem()); }); - Saplings.saplings.forEach(sapling -> { + BlockTagCollectionsME.SAPLINGS.forEach(sapling -> { valueLookupBuilder(saplings).add(sapling.asItem()); }); - LogsThatBurn.logsThatBurn.forEach(log -> { + BlockTagCollectionsME.LOGS_THAT_BURN.forEach(log -> { valueLookupBuilder(logs_that_burn).add(log.asItem()); }); @@ -303,7 +303,7 @@ protected void configure(RegistryWrapper.WrapperLookup arg) { valueLookupBuilder(nugget_shaping).add(nugget); }); - Stones.stones.forEach(stone -> { + BlockTagCollectionsME.STONES.forEach(stone -> { valueLookupBuilder(stone_crafting_materials).add(stone.asItem()); if(!stone.asItem().toString().contains("jadeite")){ valueLookupBuilder(stone_tool_materials).add(stone.asItem()); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/RegistriesME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/RegistriesME.java index 71246b0e44..63b2c93daa 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/RegistriesME.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/RegistriesME.java @@ -25,8 +25,7 @@ import net.sevenstars.middleearth.block.registration.ModNatureBlocks; import net.sevenstars.middleearth.datageneration.content.models.HotMetalsModel; import net.sevenstars.middleearth.datageneration.content.models.SimpleDyeableItemModel; -import net.sevenstars.middleearth.datageneration.content.tags.LeavesSets; -import net.sevenstars.middleearth.datageneration.content.tags.Saplings; +import net.sevenstars.middleearth.datageneration.content.tags.BlockTagCollectionsME; import net.sevenstars.middleearth.item.*; import java.io.File; @@ -188,7 +187,7 @@ public static void registerFlammableBlocks() { FlammableBlockRegistry.getDefaultInstance().add(ModNatureBlocks.DRY_PINE_LEAVES, 30, 60); FlammableBlockRegistry.getDefaultInstance().add(ModNatureBlocks.PINE_BRANCHES, 30, 60); - LeavesSets.leaves.forEach(block -> { + BlockTagCollectionsME.LEAVES.forEach(block -> { FlammableBlockRegistry.getDefaultInstance().add(block, 30, 60); }); } @@ -571,14 +570,14 @@ public static void registerComposterBlocks() { registry.add(ModNatureBlocks.SKY_FIRECAP_BLOCK, 0.85F); registry.add(ModNatureBlocks.YELLOW_AMANITA_BLOCK, 0.85F); - Saplings.saplings.forEach(sapling -> { + BlockTagCollectionsME.SAPLINGS.forEach(sapling -> { registry.add(sapling, 0.3F); }); registry.add(ModNatureBlocks.ASPEN_SAPLING, 0.3F); registry.add(ModNatureBlocks.BEECH_SAPLING, 0.3F); - LeavesSets.leaves.forEach(block -> { + BlockTagCollectionsME.LEAVES.forEach(block -> { registry.add(block, 0.3F); }); From ed3b6f3e50b75e87f3eebee6e56999fc1ba29056 Mon Sep 17 00:00:00 2001 From: Yelfra Date: Sun, 5 Apr 2026 01:21:04 +0200 Subject: [PATCH 6/7] Delete replaced tag collection classes --- .../datageneration/content/tags/Buttons.java | 14 -- .../datageneration/content/tags/Crops.java | 23 --- .../datageneration/content/tags/Doors.java | 18 -- .../content/tags/FenceGates.java | 14 -- .../datageneration/content/tags/Fences.java | 15 -- .../content/tags/LeavesSets.java | 33 ---- .../datageneration/content/tags/Logs.java | 24 --- .../content/tags/LogsThatBurn.java | 14 -- .../content/tags/MineableAxe.java | 85 --------- .../content/tags/MineableHoe.java | 27 --- .../content/tags/MineablePickaxe.java | 161 ------------------ .../content/tags/ModdedStrippedLogs.java | 13 -- .../datageneration/content/tags/Planks.java | 23 --- .../content/tags/PressurePlates.java | 14 -- .../datageneration/content/tags/Saplings.java | 14 -- .../datageneration/content/tags/Shingles.java | 14 -- .../datageneration/content/tags/Stones.java | 14 -- .../content/tags/Trapdoors.java | 14 -- .../datageneration/content/tags/Walls.java | 14 -- .../content/tags/WoodenSlabs.java | 13 -- .../content/tags/WoodenVerticalSlabs.java | 14 -- .../datageneration/content/tags/Wool.java | 102 ----------- 22 files changed, 677 deletions(-) delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Buttons.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Crops.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Doors.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/FenceGates.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Fences.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/LeavesSets.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Logs.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/LogsThatBurn.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/MineableAxe.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/MineableHoe.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/MineablePickaxe.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/ModdedStrippedLogs.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Planks.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/PressurePlates.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Saplings.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Shingles.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Stones.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Trapdoors.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Walls.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/WoodenSlabs.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/WoodenVerticalSlabs.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Wool.java diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Buttons.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Buttons.java deleted file mode 100644 index 566fccea88..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Buttons.java +++ /dev/null @@ -1,14 +0,0 @@ -package net.sevenstars.middleearth.datageneration.content.tags; - -import net.minecraft.block.Block; - -import java.util.ArrayList; -import java.util.List; - -public class Buttons { - public static List buttons = new ArrayList<>() { - { - - } - }; -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Crops.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Crops.java deleted file mode 100644 index 26dfea0ff3..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Crops.java +++ /dev/null @@ -1,23 +0,0 @@ -package net.sevenstars.middleearth.datageneration.content.tags; - -import net.sevenstars.middleearth.block.registration.ModNatureBlocks; -import net.minecraft.block.Block; - -import java.util.ArrayList; -import java.util.List; - -public class Crops { - public static List crops = new ArrayList<>() { - { - add(ModNatureBlocks.TOMATO_CROP); - add(ModNatureBlocks.BELL_PEPPER_CROP); - add(ModNatureBlocks.CUCUMBER_CROP); - add(ModNatureBlocks.FLAX_CROP); - add(ModNatureBlocks.GARLIC_CROP); - add(ModNatureBlocks.LEEK_CROP); - add(ModNatureBlocks.LETTUCE_CROP); - add(ModNatureBlocks.ONION_CROP); - add(ModNatureBlocks.PIPEWEED_CROP); - } - }; -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Doors.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Doors.java deleted file mode 100644 index 7e7b79f610..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Doors.java +++ /dev/null @@ -1,18 +0,0 @@ -package net.sevenstars.middleearth.datageneration.content.tags; - -import net.sevenstars.middleearth.block.registration.ModBlocks; -import net.minecraft.block.Block; - -import java.util.ArrayList; -import java.util.List; - -public class Doors { - public static List doors = new ArrayList<>() { - { - add(ModBlocks.AGED_WOOD_DOOR); - add(ModBlocks.BRONZE_DOOR); - add(ModBlocks.CRUDE_DOOR); - add(ModBlocks.TREATED_STEEL_DOOR); - } - }; -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/FenceGates.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/FenceGates.java deleted file mode 100644 index af12dc1e98..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/FenceGates.java +++ /dev/null @@ -1,14 +0,0 @@ -package net.sevenstars.middleearth.datageneration.content.tags; - -import net.minecraft.block.Block; - -import java.util.ArrayList; -import java.util.List; - -public class FenceGates { - public static List fenceGates = new ArrayList<>() { - { - - } - }; -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Fences.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Fences.java deleted file mode 100644 index c2188c8e8e..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Fences.java +++ /dev/null @@ -1,15 +0,0 @@ -package net.sevenstars.middleearth.datageneration.content.tags; - -import net.minecraft.block.Block; -import net.sevenstars.middleearth.block.registration.ModBlocks; - -import java.util.ArrayList; -import java.util.List; - -public class Fences { - public static List fences = new ArrayList<>() { - { - add(ModBlocks.TREATED_WOOD_ROPE_FENCE); - } - }; -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/LeavesSets.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/LeavesSets.java deleted file mode 100644 index fd400f22c2..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/LeavesSets.java +++ /dev/null @@ -1,33 +0,0 @@ -package net.sevenstars.middleearth.datageneration.content.tags; - -import net.sevenstars.middleearth.block.registration.ModNatureBlocks; -import net.minecraft.block.Block; - -import java.util.ArrayList; -import java.util.List; - -public class LeavesSets { - public static List leaves = new ArrayList<>() { - { - add(ModNatureBlocks.LEBETHRON_LEAVES); - - add(ModNatureBlocks.BERRY_HOLLY_LEAVES); - - add(ModNatureBlocks.DRY_LARCH_LEAVES); - - add(ModNatureBlocks.FLOWERING_MALLORN_LEAVES); - - add(ModNatureBlocks.ORANGE_MAPLE_LEAVES); - add(ModNatureBlocks.RED_MAPLE_LEAVES); - add(ModNatureBlocks.YELLOW_MAPLE_LEAVES); - - add(ModNatureBlocks.DRY_PINE_LEAVES); - } - }; - - public static List grayscaleLeaves = new ArrayList<>() { - { - - } - }; -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Logs.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Logs.java deleted file mode 100644 index da32c7d88b..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Logs.java +++ /dev/null @@ -1,24 +0,0 @@ -package net.sevenstars.middleearth.datageneration.content.tags; - -import net.sevenstars.middleearth.block.registration.ModNatureBlocks; -import net.minecraft.block.Block; -import net.minecraft.item.Item; - -import java.util.ArrayList; -import java.util.List; - -public class Logs { - public static List logs = new ArrayList<>() { - { - add(ModNatureBlocks.PINE_BRANCHES); - } - }; - - public static List getItemPlanks() { - ArrayList newList = new ArrayList<>(); - for (Block block : logs) { - newList.add(block.asItem()); - } - return newList; - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/LogsThatBurn.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/LogsThatBurn.java deleted file mode 100644 index cea28b1eac..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/LogsThatBurn.java +++ /dev/null @@ -1,14 +0,0 @@ -package net.sevenstars.middleearth.datageneration.content.tags; - -import net.minecraft.block.Block; - -import java.util.ArrayList; -import java.util.List; - -public class LogsThatBurn { - public static List logsThatBurn = new ArrayList<>() { - { - - } - }; -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/MineableAxe.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/MineableAxe.java deleted file mode 100644 index 1843be0162..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/MineableAxe.java +++ /dev/null @@ -1,85 +0,0 @@ -package net.sevenstars.middleearth.datageneration.content.tags; - -import net.sevenstars.middleearth.block.registration.ModBlocks; -import net.sevenstars.middleearth.block.registration.ModDecorativeBlocks; -import net.sevenstars.middleearth.block.registration.ModNatureBlocks; -import net.minecraft.block.Block; - -import java.util.ArrayList; -import java.util.List; - -public class MineableAxe { - public static List blocks = new ArrayList<>() { - { - add(ModDecorativeBlocks.BLUE_CUSHION); - add(ModDecorativeBlocks.BROWN_CUSHION); - add(ModDecorativeBlocks.DARK_BLUE_CUSHION); - add(ModDecorativeBlocks.DARK_BROWN_CUSHION); - add(ModDecorativeBlocks.DARK_GREEN_CUSHION); - add(ModDecorativeBlocks.DARK_RED_CUSHION); - add(ModDecorativeBlocks.GREEN_CUSHION); - add(ModDecorativeBlocks.RED_CUSHION); - - add(ModNatureBlocks.PINE_BRANCHES); - - add(ModBlocks.AGED_WOOD_DOOR); - add(ModDecorativeBlocks.BLUE_HOBBIT_DOOR); - add(ModDecorativeBlocks.GREEN_HOBBIT_DOOR); - add(ModDecorativeBlocks.LIGHT_BLUE_HOBBIT_DOOR); - add(ModDecorativeBlocks.RED_HOBBIT_DOOR); - add(ModDecorativeBlocks.YELLOW_HOBBIT_DOOR); - add(ModDecorativeBlocks.LARCH_HOBBIT_DOOR); - add(ModDecorativeBlocks.SPRUCE_HOBBIT_DOOR); - add(ModDecorativeBlocks.TALL_BLACK_PINE_DOOR); - add(ModDecorativeBlocks.OAK_STABLE_DOOR); - add(ModDecorativeBlocks.REINFORCED_BLACK_PINE_DOOR); - add(ModDecorativeBlocks.REINFORCED_SPRUCE_DOOR); - add(ModDecorativeBlocks.SIMPLE_LARCH_GATE); - add(ModDecorativeBlocks.RICKETY_SIMPLE_LARCH_DOOR); - add(ModDecorativeBlocks.SPRUCE_STABLE_DOOR); - add(ModDecorativeBlocks.LARGE_STURDY_DOOR); - add(ModDecorativeBlocks.LARGE_BEECH_FENCE_GATE); - add(ModDecorativeBlocks.VARNISHED_DWARVEN_DOOR); - add(ModDecorativeBlocks.RUINED_DWARVEN_DOOR); - add(ModDecorativeBlocks.GREAT_ELVEN_GATE); - - add(ModBlocks.AGED_WOOD_TRAPDOOR); - add(ModBlocks.BLACK_WATTLE_TRAPDOOR); - add(ModBlocks.DARK_WATTLE_TRAPDOOR); - add(ModBlocks.GREEN_WATTLE_TRAPDOOR); - add(ModBlocks.RED_WATTLE_TRAPDOOR); - add(ModBlocks.WATTLE_TRAPDOOR); - - add(ModBlocks.TREATED_WOOD_ROPE_FENCE); - - add(ModDecorativeBlocks.BELLOWS); - - add(ModDecorativeBlocks.TREATED_WOOD_LADDER); - add(ModDecorativeBlocks.TREATED_WOOD_STOOL); - add(ModDecorativeBlocks.TREATED_WOOD_CHAIR); - add(ModDecorativeBlocks.TREATED_WOOD_TABLE); - add(ModDecorativeBlocks.TREATED_WOOD_BENCH); - - add(ModDecorativeBlocks.THIN_BARREL); - add(ModDecorativeBlocks.SMALL_CRATE); - - add(ModNatureBlocks.BROWN_BOLETE_BLOCK); - add(ModNatureBlocks.CAVE_AMANITA_BLOCK); - add(ModNatureBlocks.DEEP_FIRECAP_BLOCK); - add(ModNatureBlocks.SKY_FIRECAP_BLOCK); - add(ModNatureBlocks.YELLOW_AMANITA_BLOCK); - - add(ModNatureBlocks.AZALEA_FLOWER_GROWTH); - add(ModNatureBlocks.DRY_GROWTH); - add(ModNatureBlocks.FROZEN_GROWTH); - add(ModNatureBlocks.GREEN_GROWTH); - add(ModNatureBlocks.IVY_GROWTH); - add(ModNatureBlocks.LILAC_FLOWER_GROWTH); - add(ModNatureBlocks.PINK_FLOWER_GROWTH); - add(ModNatureBlocks.RED_FLOWER_GROWTH); - add(ModNatureBlocks.THORNY_GROWTH); - add(ModNatureBlocks.WHITE_FLOWER_GROWTH); - add(ModNatureBlocks.YELLOW_FLOWER_GROWTH); - } - }; -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/MineableHoe.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/MineableHoe.java deleted file mode 100644 index 7bfab5ace2..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/MineableHoe.java +++ /dev/null @@ -1,27 +0,0 @@ -package net.sevenstars.middleearth.datageneration.content.tags; - -import net.sevenstars.middleearth.block.registration.ModBlocks; -import net.sevenstars.middleearth.block.registration.ModNatureBlocks; -import net.minecraft.block.Block; - -import java.util.ArrayList; -import java.util.List; - -public class MineableHoe { - public static List blocks = new ArrayList<>() { - { - add(ModNatureBlocks.LEBETHRON_LEAVES); - - add(ModNatureBlocks.BERRY_HOLLY_LEAVES); - - add(ModNatureBlocks.DRY_LARCH_LEAVES); - - add(ModNatureBlocks.FLOWERING_MALLORN_LEAVES); - - add(ModNatureBlocks.ORANGE_MAPLE_LEAVES); - add(ModNatureBlocks.RED_MAPLE_LEAVES); - add(ModNatureBlocks.YELLOW_MAPLE_LEAVES); - - add(ModNatureBlocks.DRY_PINE_LEAVES); - }}; -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/MineablePickaxe.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/MineablePickaxe.java deleted file mode 100644 index 7938fbefd6..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/MineablePickaxe.java +++ /dev/null @@ -1,161 +0,0 @@ -package net.sevenstars.middleearth.datageneration.content.tags; - -import net.sevenstars.middleearth.block.registration.ModBlocks; -import net.sevenstars.middleearth.block.registration.ModDecorativeBlocks; -import net.minecraft.block.Block; - -import java.util.ArrayList; -import java.util.List; - -public class MineablePickaxe { - public static List blocks = new ArrayList<>() { - { - add(ModBlocks.POINTED_GALONN); - add(ModBlocks.POINTED_LIMESTONE); - add(ModBlocks.POINTED_DOLOMITE); - add(ModBlocks.POINTED_IZHERABAN); - - add(ModDecorativeBlocks.BASALT_STATUE); - add(ModDecorativeBlocks.CALCITE_STATUE); - add(ModDecorativeBlocks.GALONN_STATUE); - add(ModDecorativeBlocks.KHAGALABAN_STATUE); - add(ModDecorativeBlocks.MEDGON_SPIKE); - add(ModDecorativeBlocks.PUMICE_STATUE); - add(ModDecorativeBlocks.TUFF_STATUE); - - add(ModDecorativeBlocks.CRUDE_ROD); - add(ModDecorativeBlocks.TREATED_STEEL_ROD); - - add(ModDecorativeBlocks.BRONZE_CHAIN); - add(ModDecorativeBlocks.BRONZE_BROAD_CHAIN); - add(ModDecorativeBlocks.CRUDE_CHAIN); - add(ModDecorativeBlocks.CRUDE_BROAD_CHAIN); - add(ModDecorativeBlocks.SPIKY_CHAIN); - - add(ModDecorativeBlocks.CHIMNEY); - - add(ModBlocks.RAW_MITHRIL_BLOCK); - add(ModBlocks.MITHRIL_BLOCK); - add(ModBlocks.RAW_TIN_BLOCK); - add(ModBlocks.TIN_BLOCK); - add(ModBlocks.RAW_LEAD_BLOCK); - add(ModBlocks.LEAD_BLOCK); - add(ModBlocks.RAW_SILVER_BLOCK); - add(ModBlocks.SILVER_BLOCK); - - add(ModBlocks.BRONZE_BLOCK); - add(ModBlocks.CRUDE_BLOCK); - add(ModBlocks.STEEL_BLOCK); - add(ModBlocks.KHAZAD_STEEL_BLOCK); - add(ModBlocks.EDHEL_STEEL_BLOCK); - add(ModBlocks.BURZUM_STEEL_BLOCK); - - add(ModDecorativeBlocks.BIG_BRAZIER); - add(ModDecorativeBlocks.SMALL_BRAZIER); - - add(ModDecorativeBlocks.GILDED_BIG_BRAZIER); - add(ModDecorativeBlocks.GILDED_SMALL_BRAZIER); - - add(ModDecorativeBlocks.FIRE_BOWL); - add(ModDecorativeBlocks.BONFIRE); - - add(ModDecorativeBlocks.SCONCE); - add(ModDecorativeBlocks.WALL_SCONCE); - - add(ModDecorativeBlocks.GILDED_SCONCE); - add(ModDecorativeBlocks.GILDED_WALL_SCONCE); - - add(ModDecorativeBlocks.ORCISH_SCONCE); - add(ModDecorativeBlocks.ORCISH_WALL_SCONCE); - - add(ModBlocks.BRONZE_DOOR); - add(ModBlocks.CRUDE_DOOR); - add(ModBlocks.TREATED_STEEL_DOOR); - add(ModBlocks.BRONZE_TRAPDOOR); - add(ModBlocks.CRUDE_TRAPDOOR); - add(ModBlocks.TREATED_STEEL_TRAPDOOR); - - add(ModBlocks.BRONZE_BARS); - add(ModBlocks.CRUDE_BARS); - add(ModBlocks.TREATED_STEEL_BARS); - add(ModBlocks.BURZUM_BARS); - add(ModBlocks.GILDED_BARS); - - add(ModDecorativeBlocks.FORGE); - add(ModDecorativeBlocks.TREATED_ANVIL); - add(ModDecorativeBlocks.DWARVEN_TREATED_ANVIL); - add(ModDecorativeBlocks.ELVEN_TREATED_ANVIL); - add(ModDecorativeBlocks.ORCISH_TREATED_ANVIL); - - add(ModDecorativeBlocks.GREAT_GONDORIAN_GATE); - - add(ModDecorativeBlocks.GREAT_DWARVEN_GATE); - add(ModDecorativeBlocks.HIDDEN_DWARVEN_DOOR); - - add(ModDecorativeBlocks.GREAT_ORCISH_GATE); - - add(ModDecorativeBlocks.TORCH_OF_ORTHANC); - - add(ModBlocks.SILVER_BARS); - - add(ModBlocks.COPPER_BARS); - add(ModBlocks.EXPOSED_COPPER_BARS); - add(ModBlocks.WEATHERED_COPPER_BARS); - add(ModBlocks.OXIDIZED_COPPER_BARS); - - add(ModBlocks.WAXED_COPPER_BARS); - add(ModBlocks.WAXED_EXPOSED_COPPER_BARS); - add(ModBlocks.WAXED_WEATHERED_COPPER_BARS); - add(ModBlocks.WAXED_OXIDIZED_COPPER_BARS); - - add(ModBlocks.WATTLE_AND_BRICK); - add(ModBlocks.WATTLE_AND_BRICK_CROSS); - add(ModBlocks.WATTLE_AND_BRICK_RIGHT); - add(ModBlocks.WATTLE_AND_BRICK_LEFT); - add(ModBlocks.WATTLE_AND_BRICK_PILLAR); - add(ModBlocks.WATTLE_AND_BRICK_DIAMOND); - - add(ModBlocks.WATTLE_AND_WHITE_DAUB); - add(ModBlocks.WATTLE_AND_WHITE_DAUB_CROSS); - add(ModBlocks.WATTLE_AND_WHITE_DAUB_RIGHT); - add(ModBlocks.WATTLE_AND_WHITE_DAUB_LEFT); - add(ModBlocks.WATTLE_AND_WHITE_DAUB_PILLAR); - add(ModBlocks.WATTLE_AND_WHITE_DAUB_DIAMOND); - - add(ModBlocks.BLACK_WATTLE_AND_WHITE_DAUB); - add(ModBlocks.BLACK_WATTLE_AND_WHITE_DAUB_CROSS); - add(ModBlocks.BLACK_WATTLE_AND_WHITE_DAUB_RIGHT); - add(ModBlocks.BLACK_WATTLE_AND_WHITE_DAUB_LEFT); - add(ModBlocks.BLACK_WATTLE_AND_WHITE_DAUB_PILLAR); - add(ModBlocks.BLACK_WATTLE_AND_WHITE_DAUB_DIAMOND); - - add(ModBlocks.GREEN_WATTLE_AND_WHITE_DAUB); - add(ModBlocks.GREEN_WATTLE_AND_WHITE_DAUB_CROSS); - add(ModBlocks.GREEN_WATTLE_AND_WHITE_DAUB_RIGHT); - add(ModBlocks.GREEN_WATTLE_AND_WHITE_DAUB_LEFT); - add(ModBlocks.GREEN_WATTLE_AND_WHITE_DAUB_PILLAR); - add(ModBlocks.GREEN_WATTLE_AND_WHITE_DAUB_DIAMOND); - - add(ModBlocks.RED_WATTLE_AND_WHITE_DAUB); - add(ModBlocks.RED_WATTLE_AND_WHITE_DAUB_CROSS); - add(ModBlocks.RED_WATTLE_AND_WHITE_DAUB_RIGHT); - add(ModBlocks.RED_WATTLE_AND_WHITE_DAUB_LEFT); - add(ModBlocks.RED_WATTLE_AND_WHITE_DAUB_PILLAR); - add(ModBlocks.RED_WATTLE_AND_WHITE_DAUB_DIAMOND); - - add(ModBlocks.DARK_WATTLE_AND_DARK_DAUB); - add(ModBlocks.DARK_WATTLE_AND_DARK_DAUB_CROSS); - add(ModBlocks.DARK_WATTLE_AND_DARK_DAUB_RIGHT); - add(ModBlocks.DARK_WATTLE_AND_DARK_DAUB_LEFT); - add(ModBlocks.DARK_WATTLE_AND_DARK_DAUB_PILLAR); - add(ModBlocks.DARK_WATTLE_AND_DARK_DAUB_DIAMOND); - - add(ModBlocks.WATTLE_AND_YELLOW_DAUB); - add(ModBlocks.WATTLE_AND_YELLOW_DAUB_CROSS); - add(ModBlocks.WATTLE_AND_YELLOW_DAUB_RIGHT); - add(ModBlocks.WATTLE_AND_YELLOW_DAUB_LEFT); - add(ModBlocks.WATTLE_AND_YELLOW_DAUB_PILLAR); - add(ModBlocks.WATTLE_AND_YELLOW_DAUB_DIAMOND); - } - }; -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/ModdedStrippedLogs.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/ModdedStrippedLogs.java deleted file mode 100644 index 0f87a15ed7..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/ModdedStrippedLogs.java +++ /dev/null @@ -1,13 +0,0 @@ -package net.sevenstars.middleearth.datageneration.content.tags; - -import net.minecraft.block.Block; - -import java.util.ArrayList; -import java.util.List; - -public class ModdedStrippedLogs { - public static List strippedLogs = new ArrayList<>() { - { - } - }; -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Planks.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Planks.java deleted file mode 100644 index 42b71ad1c4..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Planks.java +++ /dev/null @@ -1,23 +0,0 @@ -package net.sevenstars.middleearth.datageneration.content.tags; - -import net.minecraft.block.Block; -import net.minecraft.item.Item; - -import java.util.ArrayList; -import java.util.List; - -public class Planks { - public static List planks = new ArrayList<>() { - { - - } - }; - - public static List getItemPlanks() { - ArrayList newList = new ArrayList<>(); - for (Block block : planks) { - newList.add(block.asItem()); - } - return newList; - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/PressurePlates.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/PressurePlates.java deleted file mode 100644 index ad7a123c09..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/PressurePlates.java +++ /dev/null @@ -1,14 +0,0 @@ -package net.sevenstars.middleearth.datageneration.content.tags; - -import net.minecraft.block.Block; - -import java.util.ArrayList; -import java.util.List; - -public class PressurePlates { - public static List pressurePlates = new ArrayList<>() { - { - - } - }; -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Saplings.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Saplings.java deleted file mode 100644 index 16be8a8c5e..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Saplings.java +++ /dev/null @@ -1,14 +0,0 @@ -package net.sevenstars.middleearth.datageneration.content.tags; - -import net.minecraft.block.Block; - -import java.util.ArrayList; -import java.util.List; - -public class Saplings{ - public static List saplings = new ArrayList<>() { - { - - } - }; -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Shingles.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Shingles.java deleted file mode 100644 index 42b9e538f6..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Shingles.java +++ /dev/null @@ -1,14 +0,0 @@ -package net.sevenstars.middleearth.datageneration.content.tags; - -import net.minecraft.block.Block; - -import java.util.ArrayList; -import java.util.List; - -public class Shingles { - public static List shingles = new ArrayList<>() { - { - - } - }; -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Stones.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Stones.java deleted file mode 100644 index 2a8e74710b..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Stones.java +++ /dev/null @@ -1,14 +0,0 @@ -package net.sevenstars.middleearth.datageneration.content.tags; - -import net.minecraft.block.Block; - -import java.util.ArrayList; -import java.util.List; - -public class Stones { - public static List stones = new ArrayList<>() { - { - - } - }; -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Trapdoors.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Trapdoors.java deleted file mode 100644 index 5fd8a4928a..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Trapdoors.java +++ /dev/null @@ -1,14 +0,0 @@ -package net.sevenstars.middleearth.datageneration.content.tags; - -import net.minecraft.block.Block; - -import java.util.ArrayList; -import java.util.List; - -public class Trapdoors { - public static List trapdoors = new ArrayList<>() { - { - - } - }; -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Walls.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Walls.java deleted file mode 100644 index 9e6c80f886..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Walls.java +++ /dev/null @@ -1,14 +0,0 @@ -package net.sevenstars.middleearth.datageneration.content.tags; - -import net.sevenstars.middleearth.block.registration.ModBlocks; -import net.minecraft.block.Block; - -import java.util.ArrayList; -import java.util.List; - -public class Walls { - public static List walls = new ArrayList<>() { - { - } - }; -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/WoodenSlabs.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/WoodenSlabs.java deleted file mode 100644 index 3f13530874..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/WoodenSlabs.java +++ /dev/null @@ -1,13 +0,0 @@ -package net.sevenstars.middleearth.datageneration.content.tags; - -import net.minecraft.block.Block; - -import java.util.ArrayList; -import java.util.List; - -public class WoodenSlabs { - public static List woodenSlabs = new ArrayList<>() { - { - } - }; -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/WoodenVerticalSlabs.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/WoodenVerticalSlabs.java deleted file mode 100644 index 109839a3c3..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/WoodenVerticalSlabs.java +++ /dev/null @@ -1,14 +0,0 @@ -package net.sevenstars.middleearth.datageneration.content.tags; - -import net.sevenstars.middleearth.block.registration.ModBlocks; -import net.minecraft.block.Block; - -import java.util.ArrayList; -import java.util.List; - -public class WoodenVerticalSlabs { - public static List woodenVericalSlabs = new ArrayList<>() { - { - } - }; -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Wool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Wool.java deleted file mode 100644 index c74bedbd30..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/tags/Wool.java +++ /dev/null @@ -1,102 +0,0 @@ -package net.sevenstars.middleearth.datageneration.content.tags; - -import net.sevenstars.middleearth.block.registration.ModBlocks; -import net.minecraft.block.Block; -import net.sevenstars.middleearth.block.registration.ModDecorativeBlocks; - -import java.util.ArrayList; -import java.util.List; - -public class Wool { - public static List blocks = new ArrayList<>() { - { - add(ModBlocks.WHITE_WOOL_SLAB); - add(ModBlocks.ORANGE_WOOL_SLAB); - add(ModBlocks.MAGENTA_WOOL_SLAB); - add(ModBlocks.LIGHT_BLUE_WOOL_SLAB); - add(ModBlocks.YELLOW_WOOL_SLAB); - add(ModBlocks.LIME_WOOL_SLAB); - add(ModBlocks.PINK_WOOL_SLAB); - add(ModBlocks.GRAY_WOOL_SLAB); - add(ModBlocks.LIGHT_GRAY_WOOL_SLAB); - add(ModBlocks.CYAN_WOOL_SLAB); - add(ModBlocks.PURPLE_WOOL_SLAB); - add(ModBlocks.BLUE_WOOL_SLAB); - add(ModBlocks.BROWN_WOOL_SLAB); - add(ModBlocks.GREEN_WOOL_SLAB); - add(ModBlocks.RED_WOOL_SLAB); - add(ModBlocks.BLACK_WOOL_SLAB); - - add(ModBlocks.WHITE_WOOL_VERTICAL_SLAB); - add(ModBlocks.ORANGE_WOOL_VERTICAL_SLAB); - add(ModBlocks.MAGENTA_WOOL_VERTICAL_SLAB); - add(ModBlocks.LIGHT_BLUE_WOOL_VERTICAL_SLAB); - add(ModBlocks.YELLOW_WOOL_VERTICAL_SLAB); - add(ModBlocks.LIME_WOOL_VERTICAL_SLAB); - add(ModBlocks.PINK_WOOL_VERTICAL_SLAB); - add(ModBlocks.GRAY_WOOL_VERTICAL_SLAB); - add(ModBlocks.LIGHT_GRAY_WOOL_VERTICAL_SLAB); - add(ModBlocks.CYAN_WOOL_VERTICAL_SLAB); - add(ModBlocks.PURPLE_WOOL_VERTICAL_SLAB); - add(ModBlocks.BLUE_WOOL_VERTICAL_SLAB); - add(ModBlocks.BROWN_WOOL_VERTICAL_SLAB); - add(ModBlocks.GREEN_WOOL_VERTICAL_SLAB); - add(ModBlocks.RED_WOOL_VERTICAL_SLAB); - add(ModBlocks.BLACK_WOOL_VERTICAL_SLAB); - - add(ModBlocks.WHITE_WOOL_STAIRS); - add(ModBlocks.ORANGE_WOOL_STAIRS); - add(ModBlocks.MAGENTA_WOOL_STAIRS); - add(ModBlocks.LIGHT_BLUE_WOOL_STAIRS); - add(ModBlocks.YELLOW_WOOL_STAIRS); - add(ModBlocks.LIME_WOOL_STAIRS); - add(ModBlocks.PINK_WOOL_STAIRS); - add(ModBlocks.GRAY_WOOL_STAIRS); - add(ModBlocks.LIGHT_GRAY_WOOL_STAIRS); - add(ModBlocks.CYAN_WOOL_STAIRS); - add(ModBlocks.PURPLE_WOOL_STAIRS); - add(ModBlocks.BLUE_WOOL_STAIRS); - add(ModBlocks.BROWN_WOOL_STAIRS); - add(ModBlocks.GREEN_WOOL_STAIRS); - add(ModBlocks.RED_WOOL_STAIRS); - add(ModBlocks.BLACK_WOOL_STAIRS); - - add(ModDecorativeBlocks.SMALL_BLACK_CURTAIN); - add(ModDecorativeBlocks.SMALL_BLUE_CURTAIN); - add(ModDecorativeBlocks.SMALL_BROWN_CURTAIN); - add(ModDecorativeBlocks.SMALL_BURNT_CURTAIN); - add(ModDecorativeBlocks.SMALL_DARK_BLUE_CURTAIN); - add(ModDecorativeBlocks.SMALL_DARK_BROWN_CURTAIN); - add(ModDecorativeBlocks.SMALL_DARK_GREEN_CURTAIN); - add(ModDecorativeBlocks.SMALL_DARK_RED_CURTAIN); - add(ModDecorativeBlocks.SMALL_FANCY_BLUE_CURTAIN); - add(ModDecorativeBlocks.SMALL_FANCY_GREEN_CURTAIN); - add(ModDecorativeBlocks.SMALL_FANCY_RED_CURTAIN); - add(ModDecorativeBlocks.SMALL_GRAY_CURTAIN); - add(ModDecorativeBlocks.SMALL_GREEN_CURTAIN); - add(ModDecorativeBlocks.SMALL_PURPLE_CURTAIN); - add(ModDecorativeBlocks.SMALL_RED_CURTAIN); - add(ModDecorativeBlocks.SMALL_ROTTEN_CURTAIN); - add(ModDecorativeBlocks.SMALL_WHITE_CURTAIN); - add(ModDecorativeBlocks.SMALL_YELLOW_CURTAIN); - - add(ModDecorativeBlocks.BLACK_CURTAIN); - add(ModDecorativeBlocks.BLUE_CURTAIN); - add(ModDecorativeBlocks.BROWN_CURTAIN); - add(ModDecorativeBlocks.BURNT_CURTAIN); - add(ModDecorativeBlocks.DARK_BLUE_CURTAIN); - add(ModDecorativeBlocks.DARK_BROWN_CURTAIN); - add(ModDecorativeBlocks.DARK_GREEN_CURTAIN); - add(ModDecorativeBlocks.DARK_RED_CURTAIN); - add(ModDecorativeBlocks.FANCY_BLUE_CURTAIN); - add(ModDecorativeBlocks.FANCY_GREEN_CURTAIN); - add(ModDecorativeBlocks.FANCY_RED_CURTAIN); - add(ModDecorativeBlocks.GRAY_CURTAIN); - add(ModDecorativeBlocks.GREEN_CURTAIN); - add(ModDecorativeBlocks.PURPLE_CURTAIN); - add(ModDecorativeBlocks.RED_CURTAIN); - add(ModDecorativeBlocks.ROTTEN_CURTAIN); - add(ModDecorativeBlocks.WHITE_CURTAIN); - add(ModDecorativeBlocks.YELLOW_CURTAIN); - }}; -} From 49271093133b5a2720721e36cfa086f834df9175 Mon Sep 17 00:00:00 2001 From: Yelfra Date: Sun, 5 Apr 2026 14:05:15 +0200 Subject: [PATCH 7/7] Rebase krahab's registry-rework into datagen --- middle-earth/gradle.properties | 5 +- .../sevenstars/middleearth/MiddleEarth.java | 38 +- .../middleearth/MiddleEarthClient.java | 49 +- .../block/registration/ModBlockEntities.java | 5 +- .../block/registration/ModBlocks.java | 6 +- .../registration/ModDecorativeBlocks.java | 6 +- .../block/registration/ModNatureBlocks.java | 11 +- .../middleearth/block/special/SeatBlock.java | 4 +- .../special/artisantable/ArtisanTable.java | 18 +- .../fire_of_orthanc/FireOfOrthancEntity.java | 4 +- .../special/plants/ToughBerryBushBlock.java | 4 +- .../AbstractShelobiteLarvaEgg.java | 4 +- .../shelobiteeggs/ShelobiteLarvaEggBlock.java | 6 +- .../ShelobiteLarvaEggHangingBlock.java | 4 +- .../StructureManagerBlockEntity.java | 4 +- .../features/StructureManagerService.java | 4 +- .../client/ModTexturedRenderLayers.java | 20 +- .../FactionSuggestionProvider.java | 2 +- .../datageneration/DataGeneration.java | 51 +- .../datageneration/NpcTextureProvider.java | 32 - .../content/TranslationEntries.java | 15 +- .../custom/ArtisanTableRecipeJsonBuilder.java | 14 +- .../providers/LanguageProvider.java | 75 +- .../{ => dynamic}/BiomeEventProvider.java | 8 +- .../CharacterAtlasTexturesProvider.java | 29 + .../{ => dynamic}/FactionProvider.java | 8 +- .../GreatHornVariantsProvider.java | 6 +- .../providers/{ => dynamic}/NpcProvider.java | 11 +- .../providers/{ => dynamic}/RaceProvider.java | 11 +- .../{ => dynamic}/SpiderVariantsProvider.java | 8 +- .../{ => dynamic}/StructureDataProvider.java | 8 +- .../TexturePresetsProvider.java} | 12 +- .../providers/models/ItemModelProvider.java | 18 +- .../ArtisanTableArmorRecipeProvider.java | 766 ++++++++-------- .../ArtisanTableHandheldRecipeProvider.java | 624 ++++++------- .../providers/recipes/RecipeProvider.java | 3 - .../{ModEntities.java => EntitiesME.java} | 7 +- .../entity/ModEntityAttributes.java | 6 +- .../entity/ModEntityModelLayers.java | 5 +- .../entity/ModTrackedDataHandlerRegistry.java | 4 - .../middleearth/entity/TestNpcEntity.java | 26 +- .../entity/beasts/AbstractBeastEntity.java | 23 +- .../beasts/broadhoof/BroadhoofGoatEntity.java | 14 +- .../beasts/broadhoof/BroadhoofGoatModel.java | 1 - .../beasts/cave_troll/CaveTrollEntity.java | 10 +- .../beasts/great_horn/GreatHornEntity.java | 22 +- .../beasts/great_horn/GreatHornVariant.java | 5 +- .../beasts/great_horn/GreatHornVariants.java | 62 -- .../entity/beasts/trolls/TrollEntity.java | 16 +- .../beasts/trolls/stone/StoneTrollEntity.java | 9 +- .../entity/beasts/warg/WargEntity.java | 14 +- .../entity/goals/BeastTargetPlayerGoal.java | 12 +- .../entity/goals/ChargeAttackGoal.java | 10 +- .../entity/model/ModEntityModels.java | 2 + .../middleearth/entity/npcs/NpcEntity.java | 47 +- .../entity/npcs/NpcEntityBuilder.java | 4 +- .../entity/npcs/NpcEntityHelper.java | 81 +- .../entity/npcs/NpcEntityInitializer.java | 131 ++- .../entity/npcs/NpcEntityRenderState.java | 21 +- .../entity/npcs/NpcEntityRenderer.java | 165 ++-- .../entity/npcs/NpcTaskListProvider.java | 4 +- .../entity/npcs/data/NpcEntityData.java | 17 +- .../npcs/data/NpcEntityTextureData.java | 49 +- .../npcs/features/ear/EarFeatureRenderer.java | 19 +- .../features/feet/FeetFeatureRenderer.java | 58 ++ .../entity/npcs/features/feet/FeetModel.java | 69 ++ .../features/hair/HairFeatureRenderer.java | 25 +- .../entity/npcs/features/hair/HairModel.java | 2 +- .../features/nose/NoseFeatureRenderer.java | 21 +- .../entity/npcs/features/nose/NoseModel.java | 1 - .../entity/projectile/WebbedEntity.java | 10 +- .../projectile/boulder/BoulderEntity.java | 4 +- .../projectile/pebble/PebbleEntity.java | 4 +- .../pinecone/LitPineconeEntity.java | 4 +- .../projectile/pinecone/PineconeEntity.java | 4 +- .../entity/projectile/spear/SpearEntity.java | 4 +- .../entity/spider/SpiderVariant.java | 5 +- .../entity/spider/SpiderVariants.java | 58 -- .../spider/larva/ShelobiteLarvaEntity.java | 13 +- .../scuttler/ShelobiteScuttlerBrain.java | 6 +- .../scuttler/ShelobiteScuttlerEntity.java | 9 +- .../spider/spawn/SpawnOfShelobEntity.java | 13 +- .../spider/spawn/SpawnOfShelobRenderer.java | 1 - .../middleearth/event/ModEvents.java | 1 - .../ArtisanTableScreenHandler.java | 8 +- .../OnboardingFactionScreen.java | 18 +- .../OnboardingFactionScreenController.java | 153 ++-- .../OnboardingFactionScreenService.java | 10 +- .../StructureManagerScreen.java | 4 +- .../structurenest/StructureNestScreen.java | 4 +- .../widgets/PlayableNpcPreviewWidget.java | 13 +- .../map/FactionSelectionMapWidget.java | 2 +- .../item/DataComponentTypesME.java | 4 +- .../middleearth/item/DecorativeItemsME.java | 8 +- .../middleearth/item/EggItemsME.java | 30 +- .../middleearth/item/EquipmentItemsME.java | 839 +++++++++--------- .../middleearth/item/FoodItemsME.java | 4 +- .../middleearth/item/NatureBlockItemsME.java | 4 +- .../middleearth/item/ResourceItemsME.java | 9 +- .../middleearth/item/ToolItemsME.java | 4 +- .../middleearth/item/WeaponItemsME.java | 468 +++++----- .../dataComponents/FactionDataComponent.java | 6 +- .../dataComponents/RaceDataComponent.java | 4 +- .../item/items/OrcishFoodItem.java | 2 +- .../middleearth/item/items/PipeItem.java | 6 +- .../middleearth/item/utils/ItemGroupsME.java | 7 +- .../middleearth/mixin/BlockMixin.java | 4 +- .../mixin/client/BakedModelManagerMixin.java | 4 +- .../packets/C2S/PacketOnboardingRequest.java | 1 - .../network/packets/C2S/PacketSetRace.java | 4 +- .../packets/C2S/PacketSetSpawnData.java | 2 - .../{resources => registries}/AtlasesME.java | 17 +- .../CharacterClothesRegistryME.java | 42 + .../CharacterMaterialsRegistryME.java | 248 ++++++ .../CharacterPatternsRegistryME.java | 267 ++++++ .../CharacterTextureDatasRegistryME.java | 1 + .../registries/DynamicRegistriesME.java | 94 ++ .../middleearth/registries/RegistriesME.java | 20 +- ...tryAliases.java => RegistryAliasesME.java} | 2 +- .../StructureManagerDataRegistryME.java | 137 +++ .../biomevents/BiomeEventRegistry.java | 33 + .../pools/GenericHostilesBiomeEventPool.java | 33 + .../content/factions/FactionRegistry.java | 59 ++ .../factions/pools/BrigandFactionPool.java | 65 ++ .../factions/pools/DaleFactionPool.java | 77 ++ .../factions/pools/GondorFactionPool.java | 84 ++ .../pools/HobgoblinTribesFactionPool.java | 84 ++ .../factions/pools/IsengardFactionPool.java | 74 ++ .../factions/pools/LongbeardsFactionPool.java | 82 ++ .../factions/pools/LothlorienFactionPool.java | 74 ++ .../factions/pools/MordorFactionPool.java | 80 ++ .../factions/pools/RohanFactionPool.java | 80 ++ .../factions/pools/ShireFactionPool.java | 75 ++ .../pools/WildGoblinsFactionPool.java | 68 ++ .../GreatHornVariantRegistry.java | 44 + .../GreatHornVariantRegistryHelper.java | 30 + .../registries/content/npcs/NpcRegistry.java | 170 ++++ .../npcs/pools/BrigandNpcDataPool.java | 281 ++++++ .../content/npcs/pools/DalishNpcDataPool.java | 264 ++++++ .../content/npcs/pools/EreborNpcDataPool.java | 340 +++++++ .../npcs/pools/GondorianNpcDataPool.java | 310 +++++++ .../npcs/pools/GundabadNpcDataPool.java | 354 ++++++++ .../npcs/pools/IsengardNpcDataPool.java | 309 +++++++ .../content/npcs/pools/LorienNpcDataPool.java | 189 ++++ .../content/npcs/pools/MordorNpcDataPool.java | 344 +++++++ .../npcs/pools/NpcTextureDataPool.java | 270 ++++++ .../npcs/pools/RohirricNpcDataPool.java | 255 ++++++ .../content/npcs/pools/ShireNpcDataPool.java | 98 ++ .../npcs/pools/WildGoblinNpcDataPool.java | 205 +++++ .../registries/content/races/RacePools.java | 165 ++++ .../content/races/RaceRegistry.java | 38 + .../spidervariants/SpiderVariantRegistry.java | 39 + .../SpiderVariantRegistryHelper.java | 33 + .../StructureManagerDataPools.java | 110 +++ .../StructureManagerDataRegistry.java | 31 + .../TexturePresetsRegistry.java | 140 +++ .../pools/GenericTexturePresetsPool.java | 161 ++++ .../brigand/BrigandTexturePresetsPool.java | 184 ++++ .../pools/dale/DaleTexturePresetsPool.java | 177 ++++ .../gondor/GondorTexturePresetsPool.java | 181 ++++ .../GundabadTexturePresetsPool.java | 141 +++ .../HobgoblinTribesTexturePresetsPool.java | 23 + .../isengard/IsengardTexturePresetsPool.java | 221 +++++ .../LongbeardsTexturePresetsPool.java | 23 + .../erebor/EreborTexturePresetsPool.java | 196 ++++ .../LothlorienTexturePresetsPool.java | 140 +++ .../mordor/MordorTexturePresetsPool.java | 197 ++++ .../pools/rohan/RohanTexturePresetsPool.java | 183 ++++ .../pools/shire/ShireTexturePresetsPool.java | 172 ++++ .../WildGoblinTexturePresetsPool.java | 197 ++++ .../middleearth/resources/BiomeEventsME.java | 90 -- .../resources/CharacterMaterialsME.java | 286 ------ .../resources/CharacterPatternsME.java | 292 ------ .../middleearth/resources/FactionsME.java | 81 -- .../middleearth/resources/NpcME.java | 151 ---- .../resources/NpcTextureDatasME.java | 1 - .../middleearth/resources/RacesME.java | 204 ----- .../resources/StructureManagerDatasME.java | 146 --- .../datas/biome_events/BiomeEventData.java | 10 +- .../biome_events/BiomeEventDataLookup.java | 11 +- .../resources/datas/common/AffinityLevel.java | 8 + .../datas/common/CharacterMaterialTypes.java | 7 + .../datas/common/CharacterPatternTypes.java | 14 + .../DispositionType.java} | 6 +- .../datas/common/EntityCategories.java | 7 + .../datas/{ => common}/FactionType.java | 2 +- .../datas/{npcs/data => common}/NpcRank.java | 3 +- .../datas/{ => common}/RaceType.java | 2 +- .../resources/datas/factions/Faction.java | 181 ++-- .../datas/factions/FactionLookup.java | 14 +- .../datas/factions/data/InitialDiplomacy.java | 59 ++ .../datas/factions/data/SpawnData.java | 4 +- .../factions/pools/BrigandFactionPool.java | 57 -- .../datas/factions/pools/DaleFactionPool.java | 64 -- .../factions/pools/GondorFactionPool.java | 71 -- .../factions/pools/IsengardFactionPool.java | 63 -- .../factions/pools/LongbeardsFactionPool.java | 70 -- .../factions/pools/LothlorienFactionPool.java | 63 -- .../MistyMountainsGoblinsFactionPool.java | 66 -- .../factions/pools/MordorFactionPool.java | 69 -- .../factions/pools/RohanFactionPool.java | 67 -- .../factions/pools/ShireFactionPool.java | 64 -- .../resources/datas/npcs/NpcData.java | 54 +- .../resources/datas/npcs/NpcDataLookup.java | 6 +- .../resources/datas/npcs/NpcUtil.java | 4 +- ...NpcGearItemData.java => GearItemData.java} | 228 +++-- .../datas/npcs/data/GearSlotPool.java | 95 ++ .../datas/npcs/data/NpcGearData.java | 66 -- .../datas/npcs/data/NpcGearSlotData.java | 104 --- .../datas/npcs/data/NpcTextureData.java | 188 ---- .../datas/npcs/data/WeightedGearData.java | 84 ++ .../datas/npcs/data/WeightedItemData.java | 105 +++ .../datas/npcs/pools/BrigandNpcDataPool.java | 405 --------- .../datas/npcs/pools/DalishNpcDataPool.java | 338 ------- .../datas/npcs/pools/EreborNpcDataPool.java | 345 ------- .../npcs/pools/GondorianNpcDataPool.java | 295 ------ .../datas/npcs/pools/IsengardNpcDataPool.java | 308 ------- .../datas/npcs/pools/LorienNpcDataPool.java | 241 ----- .../MistyMountainsGoblinsNpcDataPool.java | 308 ------- .../datas/npcs/pools/MordorNpcDataPool.java | 448 ---------- .../datas/npcs/pools/NpcTextureDataPool.java | 285 ------ .../datas/npcs/pools/RohirricNpcDataPool.java | 239 ----- .../datas/npcs/pools/ShireNpcDataPool.java | 92 -- .../resources/datas/races/Race.java | 37 +- .../resources/datas/races/RaceLookup.java | 8 +- .../resources/datas/races/RaceUtil.java | 2 +- .../datas/races/data/EntityCategory.java | 7 - .../races/data/NpcTextureDataPreset.java | 401 --------- .../races/data/npctextures/NpcTexture.java | 59 -- .../data/npctextures/NpcTextureMaterial.java | 54 -- .../data/npctextures/NpcTexturePattern.java | 89 -- .../data/npctextures/NpcTextureType.java | 15 - .../StructureManagerData.java | 3 +- .../StructureManagerDataLookup.java | 4 +- .../StructureSpawnNestPool.java | 4 +- .../CharacterTextureMaterial.java | 56 ++ .../CharacterTexturePattern.java | 86 ++ .../datas/texture_presets/ClothingPreset.java | 74 ++ .../texture_presets/ClothingSelection.java | 7 + .../datas/texture_presets/TexturePreset.java | 357 ++++++++ .../TexturePresetDataPool.java | 166 ++++ .../WeightedClothingPresetHolder.java | 72 ++ .../WeightedTexturePresetHolder.java | 159 ++++ .../persistent_datas/AffiliationData.java | 10 +- .../persistent_datas/PlayerDataService.java | 6 +- .../middleearth/utils/BlockTagsME.java | 3 +- .../middleearth/utils/IdentifierUtil.java | 18 - .../middleearth/utils/ItemTagsME.java | 55 +- .../middleearth/utils/PlayerUtil.java | 2 +- .../biomes/caves/ModCaveBiomeFeatures.java | 29 +- .../world/biomes/caves/ModCaveBiomes.java | 46 +- .../world/biomes/surface/ModBiomes.java | 13 +- .../world/dimension/ModDimensions.java | 4 +- .../world/spawners/ModEntitySpawning.java | 170 ++-- .../spawners/ModSpawnSettingsBuilder.java | 21 +- .../atlases/character_clothes.json | 19 + .../atlases/character_clothings.json | 26 - .../middle-earth/atlases/character_eyes.json | 35 +- .../middle-earth/atlases/character_skins.json | 2 + .../character_clothes/base/pants_beige.png | Bin 0 -> 914 bytes .../character_clothes/base/pants_brown.png | Bin 0 -> 899 bytes .../base/pants_dark_brown.png | Bin 0 -> 673 bytes .../character_clothes/base/thong_beige.png | Bin 0 -> 603 bytes .../character_clothes/base/thong_brown.png | Bin 0 -> 603 bytes .../base/thong_dark_brown.png | Bin 0 -> 603 bytes .../character_clothes/extra/scarf_brown.png | Bin 0 -> 775 bytes .../extra/scarf_dark_brown.png | Bin 0 -> 599 bytes .../over/dress_burgundy_and_white.png | Bin 0 -> 956 bytes .../character_clothes/over/shirt_beige.png | Bin 0 -> 1061 bytes .../character_clothes/over/shirt_burgundy.png | Bin 0 -> 738 bytes .../clothing_dwarven_garment.png | Bin 1273 -> 0 bytes .../clothing_dwarven_garment_with_pants.png | Bin 1949 -> 0 bytes .../clothing_full_toga.png | Bin 911 -> 0 bytes .../character_clothings/clothing_pants.png | Bin 968 -> 0 bytes .../character_clothings/clothing_robe.png | Bin 1218 -> 0 bytes .../character_clothings/clothing_skirt.png | Bin 1034 -> 0 bytes .../clothing_skirt_with_strophium.png | Bin 826 -> 0 bytes .../character_clothings/clothing_thong.png | Bin 848 -> 0 bytes .../character_clothings/clothing_toga.png | Bin 882 -> 0 bytes .../color_palettes/base_palette.png | Bin 151 -> 0 bytes .../color_palettes/blue_and_copper.png | Bin 401 -> 0 bytes .../color_palettes/brown.png | Bin 150 -> 0 bytes .../color_palettes/gray.png | Bin 197 -> 0 bytes .../color_palettes/rot_green.png | Bin 152 -> 0 bytes .../color_palettes/white.png | Bin 151 -> 0 bytes .../character_eyes/color_palettes/red.png | Bin 476 -> 476 bytes .../character_eyes/eye_blind_left.png | Bin 528 -> 527 bytes .../character_eyes/eye_blind_right.png | Bin 528 -> 525 bytes .../textures/character_eyes/eye_common.png | Bin 528 -> 527 bytes ...small_wide_low.png => eye_common_high.png} | Bin 524 -> 527 bytes ...ssive.png => eye_common_high_emissive.png} | Bin 523 -> 518 bytes .../character_eyes/eye_small_high_wide.png | Bin 524 -> 524 bytes .../eye_small_high_wide_emissive.png | Bin 523 -> 523 bytes ..._wide.png => eye_small_very_high_wide.png} | Bin 524 -> 524 bytes ... => eye_small_very_high_wide_emissive.png} | Bin 523 -> 523 bytes .../character_eyes/eye_small_wide.png | Bin 524 -> 524 bytes .../eye_small_wide_emissive.png | Bin 523 -> 523 bytes .../color_palettes/base_palette.png | Bin 109 -> 109 bytes .../character_skins/color_palettes/beige.png | Bin 118 -> 118 bytes .../character_skins/color_palettes/brown.png | Bin 116 -> 116 bytes .../color_palettes/dark_beige.png | Bin 118 -> 118 bytes .../color_palettes/dark_green.png | Bin 489 -> 489 bytes .../color_palettes/dark_pink.png | Bin 118 -> 118 bytes .../character_skins/color_palettes/green.png | Bin 489 -> 489 bytes .../character_skins/color_palettes/grey.png | Bin 498 -> 498 bytes .../color_palettes/light_grey.png | Bin 498 -> 495 bytes .../color_palettes/murky_green.png | Bin 489 -> 489 bytes .../character_skins/color_palettes/olive.png | Bin 112 -> 112 bytes .../character_skins/color_palettes/pale.png | Bin 118 -> 118 bytes .../color_palettes/pale_green.png | Bin 498 -> 498 bytes .../color_palettes/pale_white.png | Bin 498 -> 498 bytes .../character_skins/color_palettes/pink.png | Bin 118 -> 118 bytes .../character_skins/color_palettes/red.png | Bin 498 -> 498 bytes .../character_skins/color_palettes/rust.png | Bin 118 -> 118 bytes .../color_palettes/sandy_green.png | Bin 489 -> 489 bytes .../color_palettes/slight_brown.png | Bin 498 -> 498 bytes .../color_palettes/swampy_green.png | Bin 118 -> 118 bytes .../character_skins/color_palettes/tan.png | Bin 118 -> 118 bytes .../color_palettes/tan_desaturated.png | Bin 118 -> 118 bytes .../character_skins/color_palettes/wine.png | Bin 118 -> 118 bytes .../color_palettes/yellowish_green.png | Bin 489 -> 489 bytes .../character_skins/ear_large_pointy.png | Bin 238 -> 286 bytes .../textures/character_skins/ear_normal.png | Bin 161 -> 183 bytes .../textures/character_skins/ear_pointy.png | Bin 164 -> 180 bytes .../textures/character_skins/ear_small.png | Bin 150 -> 156 bytes .../character_skins/ear_small_pointy.png | Bin 175 -> 189 bytes .../textures/character_skins/ear_square.png | Bin 163 -> 184 bytes .../character_skins/ear_square_pointy.png | Bin 212 -> 248 bytes .../character_skins/ear_wide_pointy.png | Bin 194 -> 239 bytes .../textures/character_skins/feet_normal.png | Bin 0 -> 204 bytes .../textures/item/barrow_wight_spawn_egg.png | Bin 0 -> 442 bytes .../item/brigand_chieftain_spawn_egg.png | Bin 0 -> 934 bytes .../item/brigand_mercenary_spawn_egg.png | Bin 0 -> 973 bytes .../textures/item/brigand_thief_spawn_egg.png | Bin 0 -> 912 bytes .../textures/item/brigand_thug_spawn_egg.png | Bin 0 -> 931 bytes .../textures/item/dale_archer_spawn_egg.png | Bin 0 -> 943 bytes .../item/dale_elite_archer_spawn_egg.png | Bin 0 -> 1065 bytes .../textures/item/dale_knight_spawn_egg.png | Bin 0 -> 1026 bytes .../textures/item/dale_militia_spawn_egg.png | Bin 0 -> 835 bytes .../textures/item/dale_peasant_spawn_egg.png | Bin 0 -> 957 bytes .../textures/item/dale_sergeant_spawn_egg.png | Bin 0 -> 986 bytes .../textures/item/dale_soldier_spawn_egg.png | Bin 0 -> 900 bytes .../textures/item/dale_veteran_spawn_egg.png | Bin 0 -> 955 bytes .../item/gondor_citadel_guard_spawn_egg.png | Bin 0 -> 1068 bytes .../item/gondor_fountain_guard_spawn_egg.png | Bin 0 -> 1094 bytes .../item/gondor_king_guard_spawn_egg.png | Bin 0 -> 1036 bytes .../textures/item/gondor_knight_spawn_egg.png | Bin 0 -> 875 bytes .../textures/item/gondor_leader_spawn_egg.png | Bin 0 -> 972 bytes .../item/gondor_militia_spawn_egg.png | Bin 0 -> 794 bytes .../item/gondor_peasant_spawn_egg.png | Bin 0 -> 952 bytes .../item/gondor_soldier_spawn_egg.png | Bin 0 -> 896 bytes .../item/gondor_veteran_spawn_egg.png | Bin 0 -> 957 bytes ...oblin_tribes_gundabad_leader_spawn_egg.png | Bin 0 -> 905 bytes ...blin_tribes_gundabad_militia_spawn_egg.png | Bin 0 -> 956 bytes ...goblin_tribes_gundabad_rider_spawn_egg.png | Bin 0 -> 928 bytes ...goblin_tribes_gundabad_scout_spawn_egg.png | Bin 0 -> 960 bytes ...goblin_tribes_gundabad_snaga_spawn_egg.png | Bin 0 -> 918 bytes ...blin_tribes_gundabad_veteran_spawn_egg.png | Bin 0 -> 873 bytes ...blin_tribes_gundabad_warrior_spawn_egg.png | Bin 0 -> 975 bytes .../item/isengard_berserker_spawn_egg.png | Bin 0 -> 813 bytes .../item/isengard_leader_spawn_egg.png | Bin 0 -> 884 bytes .../item/isengard_orthanc_guard_spawn_egg.png | Bin 0 -> 896 bytes .../item/isengard_scout_spawn_egg.png | Bin 0 -> 817 bytes .../item/isengard_snaga_spawn_egg.png | Bin 0 -> 805 bytes .../item/isengard_soldier_spawn_egg.png | Bin 0 -> 886 bytes .../item/isengard_veteran_spawn_egg.png | Bin 0 -> 929 bytes .../item/isengard_warrior_spawn_egg.png | Bin 0 -> 892 bytes .../longbeards_erebor_archer_spawn_egg.png | Bin 0 -> 945 bytes .../longbeards_erebor_elite_spawn_egg.png | Bin 0 -> 924 bytes ...longbeards_erebor_gatewarden_spawn_egg.png | Bin 0 -> 910 bytes .../longbeards_erebor_leader_spawn_egg.png | Bin 0 -> 995 bytes .../longbeards_erebor_militia_spawn_egg.png | Bin 0 -> 938 bytes .../longbeards_erebor_miner_spawn_egg.png | Bin 0 -> 1002 bytes .../longbeards_erebor_peasant_spawn_egg.png | Bin 0 -> 953 bytes .../longbeards_erebor_soldier_spawn_egg.png | Bin 0 -> 939 bytes .../longbeards_erebor_veteran_spawn_egg.png | Bin 0 -> 980 bytes .../item/lothlorien_guard_spawn_egg.png | Bin 0 -> 1030 bytes .../item/lothlorien_knight_spawn_egg.png | Bin 0 -> 1034 bytes .../item/lothlorien_lord_spawn_egg.png | Bin 0 -> 1070 bytes .../item/lothlorien_ranger_spawn_egg.png | Bin 0 -> 998 bytes .../item/lothlorien_sentinel_spawn_egg.png | Bin 0 -> 973 bytes .../item/lothlorien_warrior_spawn_egg.png | Bin 0 -> 977 bytes .../mordor_black_numenorean_spawn_egg.png | Bin 0 -> 872 bytes .../item/mordor_captain_spawn_egg.png | Bin 0 -> 906 bytes .../item/mordor_militia_spawn_egg.png | Bin 0 -> 1002 bytes .../textures/item/mordor_scout_spawn_egg.png | Bin 0 -> 1017 bytes .../textures/item/mordor_snaga_spawn_egg.png | Bin 0 -> 882 bytes .../item/mordor_veteran_spawn_egg.png | Bin 0 -> 872 bytes .../item/mordor_warrior_spawn_egg.png | Bin 0 -> 1059 bytes .../textures/item/npc_spawn_egg.png | Bin 869 -> 784 bytes .../item/rohan_eorling_marshal_spawn_egg.png | Bin 0 -> 972 bytes .../item/rohan_horse_lord_spawn_egg.png | Bin 0 -> 998 bytes .../textures/item/rohan_knight_spawn_egg.png | Bin 0 -> 936 bytes .../textures/item/rohan_militia_spawn_egg.png | Bin 0 -> 905 bytes .../textures/item/rohan_peasant_spawn_egg.png | Bin 0 -> 956 bytes .../item/rohan_royal_guard_spawn_egg.png | Bin 0 -> 939 bytes .../textures/item/rohan_soldier_spawn_egg.png | Bin 0 -> 960 bytes .../textures/item/shire_militia_spawn_egg.png | Bin 0 -> 989 bytes .../textures/item/shire_peasant_spawn_egg.png | Bin 0 -> 964 bytes .../item/shire_shirriff_spawn_egg.png | Bin 0 -> 1018 bytes .../item/wild_goblins_brute_spawn_egg.png | Bin 0 -> 915 bytes .../item/wild_goblins_gatherer_spawn_egg.png | Bin 0 -> 874 bytes .../item/wild_goblins_rider_spawn_egg.png | Bin 0 -> 896 bytes .../item/wild_goblins_scout_spawn_egg.png | Bin 0 -> 887 bytes .../item/wild_goblins_warrior_spawn_egg.png | Bin 0 -> 849 bytes .../loot_table/chests/spawn_bonus_chest.json | 262 ++++++ .../OfBeastsAndWildThings.java | 21 +- .../OfBeastsAndWildThingsClient.java | 6 +- .../block/{ModBlocks.java => BlocksWT.java} | 11 +- .../models/SimpleItemModels.java | 1 - .../providers/EntityTagProvider.java | 4 +- .../providers/ItemTagProvider.java | 3 +- .../entity/EntitiesWT.java | 3 +- .../entity/ai/brain/MemoryModulesWT.java | 5 +- .../entity/ai/brain/SensorsWT.java | 3 +- .../entity/ai/brain/task/DigInDirtTask.java | 4 - .../entity/ai/brain/task/EatCropTask.java | 4 - .../ai/brain/task/SearchForHomeTask.java | 5 - .../entity/deer/DeerBrain.java | 4 - .../entity/deer/DeerEntityRenderer.java | 2 +- .../entity/model/EntityModelLayersWT.java | 3 +- .../entity/pheasant/PheasantEntity.java | 1 - .../entity/pheasant/PheasantEntityModel.java | 1 - .../pheasant/PheasantEntityRenderer.java | 2 +- .../pheasant/PheasantEntityVariant.java | 2 - .../entity/snail/SnailBrain.java | 3 - .../entity/snail/SnailEntityModel.java | 2 - .../entity/snail/SnailEntityRenderer.java | 2 +- .../entity/swan/SwanBrain.java | 10 +- .../entity/swan/SwanEntity.java | 6 +- .../item/EggItemsWT.java | 11 +- .../item/ItemGroupsWT.java | 4 +- .../item/ItemsWT.java | 11 +- .../utils/BiomeTagsWT.java | 6 +- .../api/dtos/WeightedIdentifier.java | 47 + .../net/sevenstars/api/dtos/WeightedItem.java | 55 ++ .../net/sevenstars/api/dtos/WeightedPool.java | 74 ++ .../api/registries/DynamicRegistries.java | 22 + .../sevenstars/api/utils/IdentifierUtil.java | 36 + 439 files changed, 12769 insertions(+), 9081 deletions(-) delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/NpcTextureProvider.java rename middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/{ => dynamic}/BiomeEventProvider.java (69%) create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/dynamic/CharacterAtlasTexturesProvider.java rename middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/{ => dynamic}/FactionProvider.java (69%) rename middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/{ => dynamic}/GreatHornVariantsProvider.java (75%) rename middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/{ => dynamic}/NpcProvider.java (69%) rename middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/{ => dynamic}/RaceProvider.java (69%) rename middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/{ => dynamic}/SpiderVariantsProvider.java (69%) rename middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/{ => dynamic}/StructureDataProvider.java (68%) rename middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/{NpcTextureDataProvider.java => dynamic/TexturePresetsProvider.java} (55%) rename middle-earth/src/main/java/net/sevenstars/middleearth/entity/{ModEntities.java => EntitiesME.java} (97%) delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/great_horn/GreatHornVariants.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/features/feet/FeetFeatureRenderer.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/features/feet/FeetModel.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/SpiderVariants.java rename middle-earth/src/main/java/net/sevenstars/middleearth/{resources => registries}/AtlasesME.java (57%) create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/CharacterClothesRegistryME.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/CharacterMaterialsRegistryME.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/CharacterPatternsRegistryME.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/CharacterTextureDatasRegistryME.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/DynamicRegistriesME.java rename middle-earth/src/main/java/net/sevenstars/middleearth/registries/{RegistryAliases.java => RegistryAliasesME.java} (99%) create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/StructureManagerDataRegistryME.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/biomevents/BiomeEventRegistry.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/biomevents/pools/GenericHostilesBiomeEventPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/FactionRegistry.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/BrigandFactionPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/DaleFactionPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/GondorFactionPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/HobgoblinTribesFactionPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/IsengardFactionPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/LongbeardsFactionPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/LothlorienFactionPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/MordorFactionPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/RohanFactionPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/ShireFactionPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/WildGoblinsFactionPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/greathornvariants/GreatHornVariantRegistry.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/greathornvariants/GreatHornVariantRegistryHelper.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/NpcRegistry.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/BrigandNpcDataPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/DalishNpcDataPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/EreborNpcDataPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/GondorianNpcDataPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/GundabadNpcDataPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/IsengardNpcDataPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/LorienNpcDataPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/MordorNpcDataPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/NpcTextureDataPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/RohirricNpcDataPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/ShireNpcDataPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/WildGoblinNpcDataPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/races/RacePools.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/races/RaceRegistry.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/spidervariants/SpiderVariantRegistry.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/spidervariants/SpiderVariantRegistryHelper.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/structuremanagerdatas/StructureManagerDataPools.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/structuremanagerdatas/StructureManagerDataRegistry.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/TexturePresetsRegistry.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/GenericTexturePresetsPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/brigand/BrigandTexturePresetsPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/dale/DaleTexturePresetsPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/gondor/GondorTexturePresetsPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/hobgoblintribes/GundabadTexturePresetsPool/GundabadTexturePresetsPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/hobgoblintribes/HobgoblinTribesTexturePresetsPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/isengard/IsengardTexturePresetsPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/longbeards/LongbeardsTexturePresetsPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/longbeards/erebor/EreborTexturePresetsPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/lothlorien/LothlorienTexturePresetsPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/mordor/MordorTexturePresetsPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/rohan/RohanTexturePresetsPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/shire/ShireTexturePresetsPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/wildgoblin/WildGoblinTexturePresetsPool.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/BiomeEventsME.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/CharacterMaterialsME.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/CharacterPatternsME.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/FactionsME.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/NpcME.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/NpcTextureDatasME.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/RacesME.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/StructureManagerDatasME.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/AffinityLevel.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/CharacterMaterialTypes.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/CharacterPatternTypes.java rename middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/{Disposition.java => common/DispositionType.java} (83%) create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/EntityCategories.java rename middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/{ => common}/FactionType.java (89%) rename middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/{npcs/data => common}/NpcRank.java (58%) rename middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/{ => common}/RaceType.java (90%) create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/data/InitialDiplomacy.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/BrigandFactionPool.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/DaleFactionPool.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/GondorFactionPool.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/IsengardFactionPool.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/LongbeardsFactionPool.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/LothlorienFactionPool.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/MistyMountainsGoblinsFactionPool.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/MordorFactionPool.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/RohanFactionPool.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/ShireFactionPool.java rename middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/{NpcGearItemData.java => GearItemData.java} (69%) create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/GearSlotPool.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/NpcGearData.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/NpcGearSlotData.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/NpcTextureData.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/WeightedGearData.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/WeightedItemData.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/BrigandNpcDataPool.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/DalishNpcDataPool.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/EreborNpcDataPool.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/GondorianNpcDataPool.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/IsengardNpcDataPool.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/LorienNpcDataPool.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/MistyMountainsGoblinsNpcDataPool.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/MordorNpcDataPool.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/NpcTextureDataPool.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/RohirricNpcDataPool.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/ShireNpcDataPool.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/data/EntityCategory.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/data/NpcTextureDataPreset.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/data/npctextures/NpcTexture.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/data/npctextures/NpcTextureMaterial.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/data/npctextures/NpcTexturePattern.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/data/npctextures/NpcTextureType.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/CharacterTextureMaterial.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/CharacterTexturePattern.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/ClothingPreset.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/ClothingSelection.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/TexturePreset.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/TexturePresetDataPool.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/WeightedClothingPresetHolder.java create mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/WeightedTexturePresetHolder.java delete mode 100644 middle-earth/src/main/java/net/sevenstars/middleearth/utils/IdentifierUtil.java create mode 100644 middle-earth/src/main/resources/assets/middle-earth/atlases/character_clothes.json delete mode 100644 middle-earth/src/main/resources/assets/middle-earth/atlases/character_clothings.json create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothes/base/pants_beige.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothes/base/pants_brown.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothes/base/pants_dark_brown.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothes/base/thong_beige.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothes/base/thong_brown.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothes/base/thong_dark_brown.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothes/extra/scarf_brown.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothes/extra/scarf_dark_brown.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothes/over/dress_burgundy_and_white.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothes/over/shirt_beige.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothes/over/shirt_burgundy.png delete mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/clothing_dwarven_garment.png delete mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/clothing_dwarven_garment_with_pants.png delete mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/clothing_full_toga.png delete mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/clothing_pants.png delete mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/clothing_robe.png delete mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/clothing_skirt.png delete mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/clothing_skirt_with_strophium.png delete mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/clothing_thong.png delete mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/clothing_toga.png delete mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/color_palettes/base_palette.png delete mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/color_palettes/blue_and_copper.png delete mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/color_palettes/brown.png delete mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/color_palettes/gray.png delete mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/color_palettes/rot_green.png delete mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/color_palettes/white.png rename middle-earth/src/main/resources/assets/middle-earth/textures/character_eyes/{eye_small_wide_low.png => eye_common_high.png} (69%) rename middle-earth/src/main/resources/assets/middle-earth/textures/character_eyes/{eye_small_low_wide_emissive.png => eye_common_high_emissive.png} (70%) rename middle-earth/src/main/resources/assets/middle-earth/textures/character_eyes/{eye_small_low_wide.png => eye_small_very_high_wide.png} (82%) rename middle-earth/src/main/resources/assets/middle-earth/textures/character_eyes/{eye_small_wide_low_emissive.png => eye_small_very_high_wide_emissive.png} (82%) create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/feet_normal.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/barrow_wight_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/brigand_chieftain_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/brigand_mercenary_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/brigand_thief_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/brigand_thug_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/dale_archer_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/dale_elite_archer_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/dale_knight_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/dale_militia_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/dale_peasant_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/dale_sergeant_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/dale_soldier_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/dale_veteran_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/gondor_citadel_guard_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/gondor_fountain_guard_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/gondor_king_guard_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/gondor_knight_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/gondor_leader_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/gondor_militia_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/gondor_peasant_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/gondor_soldier_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/gondor_veteran_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/hobgoblin_tribes_gundabad_leader_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/hobgoblin_tribes_gundabad_militia_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/hobgoblin_tribes_gundabad_rider_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/hobgoblin_tribes_gundabad_scout_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/hobgoblin_tribes_gundabad_snaga_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/hobgoblin_tribes_gundabad_veteran_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/hobgoblin_tribes_gundabad_warrior_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/isengard_berserker_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/isengard_leader_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/isengard_orthanc_guard_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/isengard_scout_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/isengard_snaga_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/isengard_soldier_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/isengard_veteran_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/isengard_warrior_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/longbeards_erebor_archer_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/longbeards_erebor_elite_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/longbeards_erebor_gatewarden_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/longbeards_erebor_leader_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/longbeards_erebor_militia_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/longbeards_erebor_miner_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/longbeards_erebor_peasant_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/longbeards_erebor_soldier_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/longbeards_erebor_veteran_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/lothlorien_guard_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/lothlorien_knight_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/lothlorien_lord_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/lothlorien_ranger_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/lothlorien_sentinel_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/lothlorien_warrior_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/mordor_black_numenorean_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/mordor_captain_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/mordor_militia_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/mordor_scout_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/mordor_snaga_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/mordor_veteran_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/mordor_warrior_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/rohan_eorling_marshal_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/rohan_horse_lord_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/rohan_knight_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/rohan_militia_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/rohan_peasant_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/rohan_royal_guard_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/rohan_soldier_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/shire_militia_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/shire_peasant_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/shire_shirriff_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/wild_goblins_brute_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/wild_goblins_gatherer_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/wild_goblins_rider_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/wild_goblins_scout_spawn_egg.png create mode 100644 middle-earth/src/main/resources/assets/middle-earth/textures/item/wild_goblins_warrior_spawn_egg.png create mode 100644 middle-earth/src/main/resources/data/minecraft/loot_table/chests/spawn_bonus_chest.json rename of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/block/{ModBlocks.java => BlocksWT.java} (81%) create mode 100644 sevenstars-api/src/main/java/net/sevenstars/api/dtos/WeightedIdentifier.java create mode 100644 sevenstars-api/src/main/java/net/sevenstars/api/dtos/WeightedItem.java create mode 100644 sevenstars-api/src/main/java/net/sevenstars/api/dtos/WeightedPool.java create mode 100644 sevenstars-api/src/main/java/net/sevenstars/api/registries/DynamicRegistries.java create mode 100644 sevenstars-api/src/main/java/net/sevenstars/api/utils/IdentifierUtil.java diff --git a/middle-earth/gradle.properties b/middle-earth/gradle.properties index 1ee2651b9f..a9f356c81e 100644 --- a/middle-earth/gradle.properties +++ b/middle-earth/gradle.properties @@ -1,6 +1,9 @@ # Done to increase the memory available to gradle. -org.gradle.jvmargs=-Xmx2G +org.gradle.jvmargs=-Xmx8192m -XX:+HeapDumpOnOutOfMemoryError org.gradle.parallel=true +org.gradle.daemon=true +org.gradle.caching=true +org.gradle.configuration-cache=true minecraft_version=1.21.8 yarn_mappings=1.21.8+build.1 diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/MiddleEarth.java b/middle-earth/src/main/java/net/sevenstars/middleearth/MiddleEarth.java index b6f002855b..392b27c2b1 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/MiddleEarth.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/MiddleEarth.java @@ -1,20 +1,19 @@ package net.sevenstars.middleearth; import net.fabricmc.api.ModInitializer; +import net.minecraft.util.Identifier; import net.sevenstars.api.utils.ModLogger; import net.sevenstars.middleearth.block.registration.*; import net.sevenstars.middleearth.commands.ModCommands; import net.sevenstars.middleearth.config.ModClientConfigs; import net.sevenstars.middleearth.config.ModServerConfigs; +import net.sevenstars.middleearth.entity.EntitiesME; import net.sevenstars.middleearth.entity.ModEntityAttributes; import net.sevenstars.middleearth.entity.ModTrackedDataHandlerRegistry; import net.sevenstars.middleearth.enchantments.EnchantmentEffectsME; -import net.sevenstars.middleearth.entity.ModEntities; import net.sevenstars.middleearth.entity.ai.brain.ActivitiesME; import net.sevenstars.middleearth.entity.ai.brain.MemoryModulesME; import net.sevenstars.middleearth.entity.ai.brain.SensorsME; -import net.sevenstars.middleearth.entity.beasts.great_horn.GreatHornVariants; -import net.sevenstars.middleearth.entity.spider.SpiderVariants; import net.sevenstars.middleearth.event.ModEvents; import net.sevenstars.middleearth.gui.ModScreenHandlers; import net.sevenstars.middleearth.item.*; @@ -25,10 +24,11 @@ import net.sevenstars.middleearth.particles.ModParticleTypes; import net.sevenstars.middleearth.recipe.ModRecipeSerializer; import net.sevenstars.middleearth.recipe.ModRecipes; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; import net.sevenstars.middleearth.registries.RegistriesME; -import net.sevenstars.middleearth.resources.*; import net.sevenstars.middleearth.sound.ModSounds; import net.sevenstars.middleearth.statusEffects.ModStatusEffects; +import net.sevenstars.api.utils.IdentifierUtil; import net.sevenstars.middleearth.utils.LootModifiers; import net.sevenstars.middleearth.utils.resources.FileUtils; import net.sevenstars.middleearth.world.biomes.MEBiomeKeys; @@ -102,12 +102,9 @@ public void onInitialize() { ModTrackedDataHandlerRegistry.register(); - CharacterMaterialsME.register(); - CharacterPatternsME.register(); - StructureManagerDatasME.register(); - BiomeEventsME.register(); - ModEntities.registerModEntities(); + + EntitiesME.registerModEntities(); ModEntitySpawning.addSpawns(); // Entity AI @@ -128,13 +125,7 @@ public void onInitialize() { LootModifiers.modifyLootTables(); // Dynamic Data - SpiderVariants.register(); - GreatHornVariants.register(); - NpcTextureDatasME.register(); - RacesME.register(); - NpcME.register(); - FactionsME.register(); - + DynamicRegistriesME.register(); RegistriesME.registerRegistryAliases(); try { @@ -143,4 +134,19 @@ public void onInitialize() { throw new RuntimeException(e); } } + + public static Identifier fetchId(String stringId){ + return IdentifierUtil.getIdentifierFromString(stringId); + } + + public static Identifier of(String path){ + return IdentifierUtil.build(MOD_ID, path); + } + + public static Identifier of(String... names){ + return IdentifierUtil.buildAggregate(MOD_ID, names); + } + public static String createAggregate(char splitter, String... names){ + return IdentifierUtil.createAggregateValue(splitter, names); + } } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/MiddleEarthClient.java b/middle-earth/src/main/java/net/sevenstars/middleearth/MiddleEarthClient.java index 98598fa5f9..390b58d7af 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/MiddleEarthClient.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/MiddleEarthClient.java @@ -39,7 +39,7 @@ import net.sevenstars.middleearth.client.renderer.handheld.RoundShieldModelRenderer; import net.sevenstars.middleearth.datageneration.content.models.*; import net.sevenstars.middleearth.datageneration.content.tags.BlockTagCollectionsME; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.sevenstars.middleearth.entity.barrel.BarrelEntityRenderer; import net.sevenstars.middleearth.entity.barrow_wights.BarrowWightEntityRenderer; import net.sevenstars.middleearth.entity.beasts.broadhoof.BroadhoofGoatRenderer; @@ -100,38 +100,39 @@ public void onInitializeClient() { KeyInputHandler.register(); ModEntityModels.getModels(); - EntityRendererRegistry.register(ModEntities.BARROW_WIGHT, BarrowWightEntityRenderer::new); + EntityRendererRegistry.register(EntitiesME.BARROW_WIGHT, BarrowWightEntityRenderer::new); // Entities - EntityRendererRegistry.register(ModEntities.SNOW_TROLL, SnowTrollRenderer::new); - EntityRendererRegistry.register(ModEntities.CAVE_TROLL, CaveTrollRenderer::new); - EntityRendererRegistry.register(ModEntities.STONE_TROLL, StoneTrollRenderer::new); - EntityRendererRegistry.register(ModEntities.PETRIFIED_TROLL, PetrifiedTrollRenderer::new); + EntityRendererRegistry.register(EntitiesME.SNOW_TROLL, SnowTrollRenderer::new); + EntityRendererRegistry.register(EntitiesME.CAVE_TROLL, CaveTrollRenderer::new); + EntityRendererRegistry.register(EntitiesME.STONE_TROLL, StoneTrollRenderer::new); + EntityRendererRegistry.register(EntitiesME.PETRIFIED_TROLL, PetrifiedTrollRenderer::new); - EntityRendererRegistry.register(ModEntities.BROADHOOF_GOAT, BroadhoofGoatRenderer::new); - EntityRendererRegistry.register(ModEntities.GREAT_HORN, GreatHornRenderer::new); - EntityRendererRegistry.register(ModEntities.WARG, WargRenderer::new); + EntityRendererRegistry.register(EntitiesME.BROADHOOF_GOAT, BroadhoofGoatRenderer::new); + EntityRendererRegistry.register(EntitiesME.GREAT_HORN, GreatHornRenderer::new); + EntityRendererRegistry.register(EntitiesME.WARG, WargRenderer::new); - EntityRendererRegistry.register(ModEntities.REINFORCED_BARREL, BarrelEntityRenderer::new); + EntityRendererRegistry.register(EntitiesME.REINFORCED_BARREL, BarrelEntityRenderer::new); - EntityRendererRegistry.register(ModEntities.SHELOBITE_LARVA, ShelobiteLarvaRenderer::new); - EntityRendererRegistry.register(ModEntities.SHELOBITE_SCUTTLER, ShelobiteScuttlerRenderer::new); - EntityRendererRegistry.register(ModEntities.SPAWN_OF_SHELOB, SpawnOfShelobRenderer::new); - //EntityRendererRegistry.register(ModEntities.BALROG, BalrogRenderer::new); + EntityRendererRegistry.register(EntitiesME.SHELOBITE_LARVA, ShelobiteLarvaRenderer::new); + EntityRendererRegistry.register(EntitiesME.SHELOBITE_SCUTTLER, ShelobiteScuttlerRenderer::new); + EntityRendererRegistry.register(EntitiesME.SPAWN_OF_SHELOB, SpawnOfShelobRenderer::new); + //EntityRendererRegistry.register(EntitiesME.BALROG, BalrogRenderer::new); - EntityRendererRegistry.register(ModEntities.FIRE_OF_ORTHANC, FireOfOrthancEntityRenderer::new); - EntityRendererRegistry.register(ModEntities.PEBBLE, FlyingItemEntityRenderer::new); - EntityRendererRegistry.register(ModEntities.PINECONE, FlyingItemEntityRenderer::new); - EntityRendererRegistry.register(ModEntities.LIT_PINECONE, FlyingItemEntityRenderer::new); - EntityRendererRegistry.register(ModEntities.SPEAR, SpearEntityRenderer::new); - EntityRendererRegistry.register(ModEntities.BOULDER, BoulderEntityRenderer::new); - EntityRendererRegistry.register(ModEntities.SMOKE_RING_PROJECTILE, SmokeRingProjectileRenderer::new); - EntityRendererRegistry.register(ModEntities.WEB, FlyingItemEntityRenderer::new); - EntityRendererRegistry.register(ModEntities.NPC, NpcEntityRenderer::new); + EntityRendererRegistry.register(EntitiesME.FIRE_OF_ORTHANC, FireOfOrthancEntityRenderer::new); + EntityRendererRegistry.register(EntitiesME.PEBBLE, FlyingItemEntityRenderer::new); + EntityRendererRegistry.register(EntitiesME.PINECONE, FlyingItemEntityRenderer::new); + EntityRendererRegistry.register(EntitiesME.LIT_PINECONE, FlyingItemEntityRenderer::new); + EntityRendererRegistry.register(EntitiesME.SPEAR, SpearEntityRenderer::new); + EntityRendererRegistry.register(EntitiesME.BOULDER, BoulderEntityRenderer::new); + EntityRendererRegistry.register(EntitiesME.SMOKE_RING_PROJECTILE, SmokeRingProjectileRenderer::new); + EntityRendererRegistry.register(EntitiesME.WEB, FlyingItemEntityRenderer::new); + EntityRendererRegistry.register(EntitiesME.NPC, NpcEntityRenderer::new); - EntityRendererRegistry.register(ModEntities.SEAT_ENTITY, SeatRenderer::new); + + EntityRendererRegistry.register(EntitiesME.SEAT_ENTITY, SeatRenderer::new); HandledScreens.register(ModScreenHandlers.FORGE_ALLOYING_SCREEN_HANDLER, ForgeAlloyingScreen::new); HandledScreens.register(ModScreenHandlers.FORGE_HEATING_SCREEN_HANDLER, ForgeHeatingScreen::new); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/block/registration/ModBlockEntities.java b/middle-earth/src/main/java/net/sevenstars/middleearth/block/registration/ModBlockEntities.java index 447d4e7c59..e82ebecf62 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/block/registration/ModBlockEntities.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/block/registration/ModBlockEntities.java @@ -11,14 +11,13 @@ import net.sevenstars.middleearth.block.special.reinforcedChest.ReinforcedChestBlockEntity; import net.sevenstars.middleearth.block.special.shapingAnvil.TreatedAnvilBlockEntity; import net.sevenstars.middleearth.block.special.structureManager.StructureManagerBlockEntity; -import net.sevenstars.middleearth.block.special.structureManager.nest.StructureNestBlock; import net.sevenstars.middleearth.block.special.structureManager.nest.StructureNestBlockEntity; import net.sevenstars.middleearth.block.special.wood_pile.WoodPileBlockEntity; import net.minecraft.block.entity.BlockEntityType; import net.minecraft.registry.Registries; import net.minecraft.registry.Registry; import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.registries.RegistryAliases; +import net.sevenstars.middleearth.registries.RegistryAliasesME; public class ModBlockEntities { public static BlockEntityType FORGE = register("forge", ForgeBlockEntity::new, @@ -66,7 +65,7 @@ private static BlockEntityType register(String name, FabricBlockEntityTypeBuilder.Factory entityFactory, Block... blocks) { Identifier id = Identifier.of(MiddleEarth.MOD_ID, name); - RegistryAliases.aliases.add(new RegistryAliases.Alias(Registries.BLOCK_ENTITY_TYPE, name)); + RegistryAliasesME.aliases.add(new RegistryAliasesME.Alias(Registries.BLOCK_ENTITY_TYPE, name)); return Registry.register(Registries.BLOCK_ENTITY_TYPE, id, FabricBlockEntityTypeBuilder.create(entityFactory, blocks).build()); } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/block/registration/ModBlocks.java b/middle-earth/src/main/java/net/sevenstars/middleearth/block/registration/ModBlocks.java index 309495d1f6..05582bfb92 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/block/registration/ModBlocks.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/block/registration/ModBlocks.java @@ -26,7 +26,7 @@ import net.minecraft.sound.BlockSoundGroup; import net.minecraft.util.ColorCode; import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.registries.RegistryAliases; +import net.sevenstars.middleearth.registries.RegistryAliasesME; import java.util.List; import java.util.function.Function; @@ -743,7 +743,7 @@ public static Block registerBlock(String name, Function keyOfBlock(String id) { diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/block/registration/ModDecorativeBlocks.java b/middle-earth/src/main/java/net/sevenstars/middleearth/block/registration/ModDecorativeBlocks.java index 2b08fd6abb..bf9ae40ada 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/block/registration/ModDecorativeBlocks.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/block/registration/ModDecorativeBlocks.java @@ -41,7 +41,7 @@ import net.minecraft.sound.BlockSoundGroup; import net.minecraft.state.property.Properties; import net.minecraft.util.DyeColor; -import net.sevenstars.middleearth.registries.RegistryAliases; +import net.sevenstars.middleearth.registries.RegistryAliasesME; import java.util.function.Function; import java.util.function.ToIntFunction; @@ -660,7 +660,7 @@ public class ModDecorativeBlocks { public static Block registerBlock(String name, Function factory, AbstractBlock.Settings settings) { Block block = (Block)factory.apply(settings.registryKey(ModBlocks.keyOfBlock(name))); - RegistryAliases.aliases.add(new RegistryAliases.Alias(Registries.BLOCK, name)); + RegistryAliasesME.aliases.add(new RegistryAliasesME.Alias(Registries.BLOCK, name)); return Registry.register(Registries.BLOCK, ModBlocks.keyOfBlock(name), block); } @@ -669,7 +669,7 @@ public static Block registerBlockWithItem(String name, Function() { @Override public Object getScreenOpeningData(ServerPlayerEntity player) { - Disposition disposition = PlayerDataService.getPlayerDisposition(player, world); - if (disposition == null){ - disposition = Disposition.NEUTRAL; + DispositionType dispositionType = PlayerDataService.getPlayerDisposition(player, world); + if (dispositionType == null){ + dispositionType = DispositionType.NEUTRAL; } - return disposition + "/" + player.isCreative(); + return dispositionType + "/" + player.isCreative(); } @Override @@ -71,11 +71,11 @@ public Text getDisplayName() { @Nullable @Override public ScreenHandler createMenu(int syncId, PlayerInventory playerInventory, PlayerEntity player) { - Disposition disposition = PlayerDataService.getPlayerDisposition(player, world); - if (disposition == null){ - disposition = Disposition.NEUTRAL; + DispositionType dispositionType = PlayerDataService.getPlayerDisposition(player, world); + if (dispositionType == null){ + dispositionType = DispositionType.NEUTRAL; } - return new ArtisanTableScreenHandler(syncId, playerInventory, disposition + "/" + player.isCreative()); + return new ArtisanTableScreenHandler(syncId, playerInventory, dispositionType + "/" + player.isCreative()); } }); } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/fire_of_orthanc/FireOfOrthancEntity.java b/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/fire_of_orthanc/FireOfOrthancEntity.java index a12c7b096a..e53861fcad 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/fire_of_orthanc/FireOfOrthancEntity.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/fire_of_orthanc/FireOfOrthancEntity.java @@ -5,7 +5,7 @@ import net.sevenstars.middleearth.block.registration.ModDecorativeBlocks; import net.minecraft.storage.ReadView; import net.minecraft.storage.WriteView; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.minecraft.block.BlockState; import net.minecraft.entity.*; import net.minecraft.entity.data.DataTracker; @@ -30,7 +30,7 @@ public FireOfOrthancEntity(EntityType type, World world) { } public FireOfOrthancEntity(World world, double x, double y, double z, @Nullable LivingEntity igniter, boolean instant) { - this(ModEntities.FIRE_OF_ORTHANC, world); + this(EntitiesME.FIRE_OF_ORTHANC, world); this.setPosition(x, y, z); double d = world.random.nextDouble() * 6.2831854820251465; this.setVelocity(-Math.sin(d) * 0.02, 0.20000000298023224, -Math.cos(d) * 0.02); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/plants/ToughBerryBushBlock.java b/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/plants/ToughBerryBushBlock.java index 8634246e54..f09e8b24f8 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/plants/ToughBerryBushBlock.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/plants/ToughBerryBushBlock.java @@ -2,7 +2,7 @@ import com.mojang.serialization.MapCodec; import net.minecraft.entity.EntityCollisionHandler; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.sevenstars.middleearth.item.FoodItemsME; import net.minecraft.block.Block; import net.minecraft.block.BlockState; @@ -84,7 +84,7 @@ public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random @Override protected void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity, EntityCollisionHandler handler) { - if (entity instanceof LivingEntity && entity.getType() != ModEntities.WARG || entity.getType() == EntityType.FOX || entity.getType() == EntityType.BAT) { + if (entity instanceof LivingEntity && entity.getType() != EntitiesME.WARG || entity.getType() == EntityType.FOX || entity.getType() == EntityType.BAT) { entity.slowMovement(state, new Vec3d(0.800000011920929, 0.75, 0.800000011920929)); if (world instanceof ServerWorld) { ServerWorld serverWorld = (ServerWorld)world; diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/shelobiteeggs/AbstractShelobiteLarvaEgg.java b/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/shelobiteeggs/AbstractShelobiteLarvaEgg.java index 20b1959fc0..68679a385b 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/shelobiteeggs/AbstractShelobiteLarvaEgg.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/shelobiteeggs/AbstractShelobiteLarvaEgg.java @@ -10,7 +10,7 @@ import net.minecraft.world.ServerWorldAccess; import net.minecraft.world.World; import net.minecraft.world.event.GameEvent; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.sevenstars.middleearth.entity.spider.larva.ShelobiteLarvaEntity; import java.util.Random; @@ -32,7 +32,7 @@ public static void breakEgg(World world, BlockPos pos, BlockState state) { } private static void SpawnSpider(BlockPos pos, World world){ - ShelobiteLarvaEntity entity = new ShelobiteLarvaEntity(ModEntities.SHELOBITE_LARVA, world); + ShelobiteLarvaEntity entity = new ShelobiteLarvaEntity(EntitiesME.SHELOBITE_LARVA, world); entity.age = 0; entity.refreshPositionAndAngles(pos, 0, 0); if(world instanceof ServerWorldAccess serverWorldAccess) { diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/shelobiteeggs/ShelobiteLarvaEggBlock.java b/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/shelobiteeggs/ShelobiteLarvaEggBlock.java index f3ac257286..de3357b646 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/shelobiteeggs/ShelobiteLarvaEggBlock.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/shelobiteeggs/ShelobiteLarvaEggBlock.java @@ -7,7 +7,6 @@ import net.minecraft.block.ShapeContext; import net.minecraft.entity.Entity; import net.minecraft.entity.SpawnReason; -import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemPlacementContext; import net.minecraft.registry.tag.EntityTypeTags; import net.minecraft.sound.SoundCategory; @@ -25,9 +24,8 @@ import net.minecraft.world.WorldView; import net.minecraft.world.event.GameEvent; import net.minecraft.world.tick.ScheduledTickView; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.sevenstars.middleearth.entity.spider.larva.ShelobiteLarvaEntity; -import net.sevenstars.middleearth.entity.spider.scuttler.ShelobiteScuttlerEntity; import org.jetbrains.annotations.Nullable; import java.util.Random; @@ -89,7 +87,7 @@ public static void breakEgg(World world, BlockPos pos, BlockState state) { } public static void SpawnSpider(BlockPos pos, World world){ - ShelobiteLarvaEntity entity = new ShelobiteLarvaEntity(ModEntities.SHELOBITE_LARVA, world); + ShelobiteLarvaEntity entity = new ShelobiteLarvaEntity(EntitiesME.SHELOBITE_LARVA, world); entity.age = 0; entity.refreshPositionAndAngles(pos, 0, 0); if(world instanceof ServerWorldAccess serverWorldAccess) { diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/shelobiteeggs/ShelobiteLarvaEggHangingBlock.java b/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/shelobiteeggs/ShelobiteLarvaEggHangingBlock.java index 554a97aef0..e0615e7b34 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/shelobiteeggs/ShelobiteLarvaEggHangingBlock.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/shelobiteeggs/ShelobiteLarvaEggHangingBlock.java @@ -24,7 +24,7 @@ import net.minecraft.world.World; import net.minecraft.world.WorldView; import net.minecraft.world.tick.ScheduledTickView; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import org.jetbrains.annotations.Nullable; import java.util.Objects; @@ -99,7 +99,7 @@ protected VoxelShape getCollisionShape(BlockState state, BlockView world, BlockP @Override protected void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity, EntityCollisionHandler handler) { super.onEntityCollision(state, world, pos, entity, handler); - if (entity.getType() != ModEntities.SHELOBITE_SCUTTLER && state.get(BLOCK_HALF) == BlockHalf.BOTTOM){ + if (entity.getType() != EntitiesME.SHELOBITE_SCUTTLER && state.get(BLOCK_HALF) == BlockHalf.BOTTOM){ breakEgg(world, pos, state); } } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/structureManager/StructureManagerBlockEntity.java b/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/structureManager/StructureManagerBlockEntity.java index b8f714a510..77caec6e02 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/structureManager/StructureManagerBlockEntity.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/structureManager/StructureManagerBlockEntity.java @@ -27,7 +27,7 @@ import net.sevenstars.middleearth.block.special.structureManager.features.StructureNestList; import net.sevenstars.middleearth.gui.structuremanager.StructureManagerScreenData; import net.sevenstars.middleearth.gui.structuremanager.StructureManagerScreenHandler; -import net.sevenstars.middleearth.resources.StructureManagerDatasME; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; import net.sevenstars.middleearth.resources.datas.structure_manager_datas.SpawnNestNodeData; import net.sevenstars.middleearth.resources.datas.structure_manager_datas.StructureManagerData; import org.jetbrains.annotations.Nullable; @@ -252,7 +252,7 @@ private void updateListeners() { public void fetchBeds(){ // TODO : Fetch all beds surrounding the nodes, making sure there's no duplicate - StructureManagerData managerData = getWorld().getRegistryManager().getOptional(StructureManagerDatasME.KEY).get().get(structureManagerIdentifier); + StructureManagerData managerData = getWorld().getRegistryManager().getOptional(DynamicRegistriesME.STRUCTURE_MANAGER_DATA).get().get(structureManagerIdentifier); for(SpawnNestManager data : structureNestList.getManagers()) { SpawnNestNodeData nodeData = managerData.getNpcSpawnNest(data.getId()); if(nodeData == null) diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/structureManager/features/StructureManagerService.java b/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/structureManager/features/StructureManagerService.java index a9bd43e5a6..446b02ef85 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/structureManager/features/StructureManagerService.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/block/special/structureManager/features/StructureManagerService.java @@ -5,7 +5,7 @@ import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.sevenstars.middleearth.entity.npcs.NpcEntityBuilder; import net.sevenstars.middleearth.resources.datas.structure_manager_datas.StructureManagerData; import net.sevenstars.middleearth.resources.datas.structure_manager_datas.StructureManagerDataLookup; @@ -35,7 +35,7 @@ public static LivingEntity SpawnEntity(World world, StructureSpawnNestPool pool, LivingEntity entity; - if(pool.getEntityType() == ModEntities.NPC){ + if(pool.getEntityType() == EntitiesME.NPC){ entity = new NpcEntityBuilder(world, chosenBlockPos) .withNpcData(pool.getNpcIdentifier().get()) diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/client/ModTexturedRenderLayers.java b/middle-earth/src/main/java/net/sevenstars/middleearth/client/ModTexturedRenderLayers.java index 863beed970..ee1ab6bda3 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/client/ModTexturedRenderLayers.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/client/ModTexturedRenderLayers.java @@ -6,7 +6,7 @@ import net.minecraft.client.util.SpriteIdentifier; import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.resources.AtlasesME; +import net.sevenstars.middleearth.registries.AtlasesME; import java.util.HashMap; import java.util.Map; @@ -30,16 +30,16 @@ public class ModTexturedRenderLayers extends TexturedRenderLayers { public static final Identifier CHARACTER_HAIRS_ATLAS_TEXTURE = AtlasesME.getAtlasPath(AtlasesME.CHARACTER_HAIRS); private static final RenderLayer CHARACTER_HAIRS_RENDER_LAYER; - public static final Identifier CHARACTER_CLOTHINGS_ATLAS_TEXTURE = AtlasesME.getAtlasPath(AtlasesME.CHARACTER_CLOTHINGS); - private static final RenderLayer CHARACTER_CLOTHINGS_RENDER_LAYER; + public static final Identifier CHARACTER_CLOTHES_ATLAS_TEXTURE = AtlasesME.getAtlasPath(AtlasesME.CHARACTER_CLOTHES); + private static final RenderLayer CHARACTER_CLOTHES_RENDER_LAYER; static { CHARACTER_SKINS_RENDER_LAYER = RenderLayer.getEntityCutoutNoCull(CHARACTER_SKIN_ATLAS_TEXTURE); CHARACTER_EYES_RENDER_LAYER = RenderLayer.getEntityCutoutNoCull(CHARACTER_EYES_ATLAS_TEXTURE); - CHARACTER_EYES_EMISSIVE_RENDER_LAYER = RenderLayer.getEntityTranslucentEmissive(CHARACTER_EYES_ATLAS_TEXTURE); - CHARACTER_HAIRS_RENDER_LAYER = RenderLayer.getEntityCutoutNoCullZOffset(CHARACTER_HAIRS_ATLAS_TEXTURE); - CHARACTER_CLOTHINGS_RENDER_LAYER = RenderLayer.getEntityCutoutNoCullZOffset(CHARACTER_CLOTHINGS_ATLAS_TEXTURE); + CHARACTER_HAIRS_RENDER_LAYER = RenderLayer.getEntityCutoutNoCull(CHARACTER_HAIRS_ATLAS_TEXTURE); + CHARACTER_CLOTHES_RENDER_LAYER = RenderLayer.getEntityCutoutNoCull(CHARACTER_CLOTHES_ATLAS_TEXTURE); + CHARACTER_EYES_EMISSIVE_RENDER_LAYER = RenderLayer.getEntityTranslucentEmissive(CHARACTER_EYES_ATLAS_TEXTURE); HEATER_SHIELD_BASE = new SpriteIdentifier(SHIELD_PATTERNS_ATLAS_TEXTURE, Identifier.of("entity/heater_shield/base")); KITE_SHIELD_BASE = new SpriteIdentifier(SHIELD_PATTERNS_ATLAS_TEXTURE, Identifier.of("entity/kite_shield/base")); @@ -62,27 +62,27 @@ public static RenderLayer getCharacterHairsRenderLayer() { return CHARACTER_HAIRS_RENDER_LAYER; } public static RenderLayer getCharacterClothingsRenderLayer() { - return CHARACTER_CLOTHINGS_RENDER_LAYER; + return CHARACTER_CLOTHES_RENDER_LAYER; } public static SpriteIdentifier getHeaterShieldPatternTextureId(RegistryEntry pattern) { - return (SpriteIdentifier)HEATER_SHIELD_PATTERN_TEXTURES.computeIfAbsent(((BannerPattern)pattern.value()).assetId(), (id) -> { + return HEATER_SHIELD_PATTERN_TEXTURES.computeIfAbsent((pattern.value()).assetId(), (id) -> { Identifier identifier = id.withPrefixedPath("entity/heater_shield/"); return new SpriteIdentifier(SHIELD_PATTERNS_ATLAS_TEXTURE, identifier); }); } public static SpriteIdentifier getKiteShieldPatternTextureId(RegistryEntry pattern) { - return (SpriteIdentifier)KITE_SHIELD_PATTERN_TEXTURES.computeIfAbsent(((BannerPattern)pattern.value()).assetId(), (id) -> { + return KITE_SHIELD_PATTERN_TEXTURES.computeIfAbsent((pattern.value()).assetId(), (id) -> { Identifier identifier = id.withPrefixedPath("entity/kite_shield/"); return new SpriteIdentifier(SHIELD_PATTERNS_ATLAS_TEXTURE, identifier); }); } public static SpriteIdentifier getRoundShieldPatternTextureId(RegistryEntry pattern) { - return (SpriteIdentifier)ROUND_SHIELD_PATTERN_TEXTURES.computeIfAbsent(((BannerPattern)pattern.value()).assetId(), (id) -> { + return ROUND_SHIELD_PATTERN_TEXTURES.computeIfAbsent((pattern.value()).assetId(), (id) -> { Identifier identifier = id.withPrefixedPath("entity/round_shield/"); return new SpriteIdentifier(SHIELD_PATTERNS_ATLAS_TEXTURE, identifier); }); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/commands/suggestions/FactionSuggestionProvider.java b/middle-earth/src/main/java/net/sevenstars/middleearth/commands/suggestions/FactionSuggestionProvider.java index 2fb32f5025..22a911fa34 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/commands/suggestions/FactionSuggestionProvider.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/commands/suggestions/FactionSuggestionProvider.java @@ -4,7 +4,7 @@ import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; import com.mojang.brigadier.suggestion.SuggestionsBuilder; -import net.sevenstars.middleearth.resources.datas.FactionType; +import net.sevenstars.middleearth.resources.datas.common.FactionType; import net.sevenstars.middleearth.resources.datas.factions.Faction; import net.sevenstars.middleearth.resources.datas.factions.FactionLookup; import net.minecraft.server.command.ServerCommandSource; diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/DataGeneration.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/DataGeneration.java index 75b8988a22..9240997fb6 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/DataGeneration.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/DataGeneration.java @@ -4,19 +4,23 @@ import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; import net.minecraft.registry.RegistryBuilder; import net.minecraft.registry.RegistryKeys; -import net.sevenstars.middleearth.datageneration.providers.*; +import net.sevenstars.middleearth.datageneration.providers.BlockLootTableProvider; +import net.sevenstars.middleearth.datageneration.providers.DataWorldGenerator; +import net.sevenstars.middleearth.datageneration.providers.EnchantmentProvider; +import net.sevenstars.middleearth.datageneration.providers.LanguageProvider; import net.sevenstars.middleearth.datageneration.providers.models.BlockModelProvider; import net.sevenstars.middleearth.datageneration.providers.models.ItemModelProvider; import net.sevenstars.middleearth.datageneration.providers.recipes.ArtisanTableArmorRecipeProvider; import net.sevenstars.middleearth.datageneration.providers.recipes.ArtisanTableHandheldRecipeProvider; import net.sevenstars.middleearth.datageneration.providers.recipes.RecipeProvider; -import net.sevenstars.middleearth.entity.beasts.great_horn.GreatHornVariants; -import net.sevenstars.middleearth.entity.spider.SpiderVariants; import net.sevenstars.middleearth.datageneration.providers.tags.BlockTagProvider; import net.sevenstars.middleearth.datageneration.providers.tags.ItemTagProvider; import net.sevenstars.middleearth.item.utils.SmithingTrimMaterialsME; import net.sevenstars.middleearth.item.utils.SmithingTrimPatternsME; -import net.sevenstars.middleearth.resources.*; +import net.sevenstars.middleearth.registries.AtlasesME; +import net.sevenstars.middleearth.registries.CharacterMaterialsRegistryME; +import net.sevenstars.middleearth.registries.CharacterPatternsRegistryME; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; import net.sevenstars.middleearth.world.biomes.caves.ModCaveBiomes; import net.sevenstars.middleearth.world.biomes.surface.ModBiomes; import net.sevenstars.middleearth.world.features.boulder.BoulderConfiguredFeatures; @@ -43,23 +47,19 @@ public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) { HelpingGenerator.generateFiles(); var pack = fabricDataGenerator.createPack(); + // Atlases + AtlasesME.addProviders(pack); + // Custom Dynamic Registries + DynamicRegistriesME.addProviders(pack); + // Others pack.addProvider(BlockTagProvider::new); pack.addProvider(BlockLootTableProvider::new); pack.addProvider(ItemTagProvider::new); - pack.addProvider(NpcTextureProvider::new); pack.addProvider(BlockModelProvider::new); pack.addProvider(ItemModelProvider::new); pack.addProvider(RecipeProvider::new); pack.addProvider(ArtisanTableHandheldRecipeProvider::new); pack.addProvider(ArtisanTableArmorRecipeProvider::new); - pack.addProvider(SpiderVariantsProvider::new); - pack.addProvider(GreatHornVariantsProvider::new); - pack.addProvider(RaceProvider::new); - pack.addProvider(NpcTextureDataProvider::new); - pack.addProvider(NpcProvider::new); - pack.addProvider(FactionProvider::new); - pack.addProvider(StructureDataProvider::new); - pack.addProvider(BiomeEventProvider::new); pack.addProvider(DataWorldGenerator::new); pack.addProvider(LanguageProvider::new); pack.addProvider(EnchantmentProvider::new); @@ -84,28 +84,17 @@ public void buildRegistry(RegistryBuilder registryBuilder) { registryBuilder.addRegistry(RegistryKeys.PLACED_FEATURE, CavesPlacedFeatures::bootstrap); registryBuilder.addRegistry(RegistryKeys.PLACED_FEATURE, ModMiscPlacedFeatures::bootstrap); - registryBuilder.addRegistry(CharacterMaterialsME.Keys.SKIN_KEY, CharacterMaterialsME::bootstrapSkins); - registryBuilder.addRegistry(CharacterPatternsME.Keys.SKIN_KEY, CharacterPatternsME::bootstrapSkins); + registryBuilder.addRegistry(DynamicRegistriesME.SKIN_MATERIAL, CharacterMaterialsRegistryME::bootstrapSkins); + registryBuilder.addRegistry(DynamicRegistriesME.SKIN_PATTERN, CharacterPatternsRegistryME::bootstrapSkins); - registryBuilder.addRegistry(CharacterMaterialsME.Keys.HAIR_KEY, CharacterMaterialsME::bootstrapHairs); - registryBuilder.addRegistry(CharacterPatternsME.Keys.HAIR_KEY, CharacterPatternsME::bootstrapHairs); + registryBuilder.addRegistry(DynamicRegistriesME.HAIR_MATERIAL, CharacterMaterialsRegistryME::bootstrapHairs); + registryBuilder.addRegistry(DynamicRegistriesME.HAIR_PATTERN, CharacterPatternsRegistryME::bootstrapHairs); - registryBuilder.addRegistry(CharacterMaterialsME.Keys.CLOTHING_KEY, CharacterMaterialsME::bootstrapClothings); - registryBuilder.addRegistry(CharacterPatternsME.Keys.CLOTHING_KEY, CharacterPatternsME::bootstrapClothings); - - registryBuilder.addRegistry(CharacterMaterialsME.Keys.EYE_KEY, CharacterMaterialsME::bootstrapEyes); - registryBuilder.addRegistry(CharacterPatternsME.Keys.EYE_KEY, CharacterPatternsME::bootstrapEyes); + registryBuilder.addRegistry(DynamicRegistriesME.EYE_MATERIAL, CharacterMaterialsRegistryME::bootstrapEyes); + registryBuilder.addRegistry(DynamicRegistriesME.EYE_PATTERN, CharacterPatternsRegistryME::bootstrapEyes); // Mod Dynamic - registryBuilder.addRegistry(SpiderVariants.KEY, SpiderVariants::bootstrap); - registryBuilder.addRegistry(GreatHornVariants.KEY, GreatHornVariants::bootstrap); - - registryBuilder.addRegistry(RacesME.KEY, RacesME::bootstrap); - registryBuilder.addRegistry(NpcTextureDatasME.KEY, NpcTextureDatasME::bootstrap); - registryBuilder.addRegistry(NpcME.KEY, NpcME::bootstrap); - registryBuilder.addRegistry(FactionsME.KEY, FactionsME::bootstrap); - registryBuilder.addRegistry(StructureManagerDatasME.KEY, StructureManagerDatasME::bootstrap); - registryBuilder.addRegistry(BiomeEventsME.KEY, BiomeEventsME::bootstrap); + DynamicRegistriesME.prepareBoostrap(registryBuilder); // Vanilla registries registryBuilder.addRegistry(RegistryKeys.TRIM_MATERIAL, SmithingTrimMaterialsME::bootstrap); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/NpcTextureProvider.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/NpcTextureProvider.java deleted file mode 100644 index f638c5e772..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/NpcTextureProvider.java +++ /dev/null @@ -1,32 +0,0 @@ -package net.sevenstars.middleearth.datageneration; - -import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; -import net.fabricmc.fabric.api.datagen.v1.provider.FabricDynamicRegistryProvider; -import net.minecraft.registry.RegistryWrapper; -import net.sevenstars.middleearth.resources.CharacterMaterialsME; -import net.sevenstars.middleearth.resources.CharacterPatternsME; - -import java.util.concurrent.CompletableFuture; - -public class NpcTextureProvider extends FabricDynamicRegistryProvider { - public NpcTextureProvider(FabricDataOutput output, CompletableFuture registriesFuture) { - super(output, registriesFuture); - } - - @Override - protected void configure(RegistryWrapper.WrapperLookup registries, FabricDynamicRegistryProvider.Entries entries) { - entries.addAll(registries.getOrThrow(CharacterMaterialsME.Keys.SKIN_KEY)); - entries.addAll(registries.getOrThrow(CharacterPatternsME.Keys.SKIN_KEY)); - entries.addAll(registries.getOrThrow(CharacterMaterialsME.Keys.EYE_KEY)); - entries.addAll(registries.getOrThrow(CharacterPatternsME.Keys.EYE_KEY)); - entries.addAll(registries.getOrThrow(CharacterMaterialsME.Keys.HAIR_KEY)); - entries.addAll(registries.getOrThrow(CharacterPatternsME.Keys.HAIR_KEY)); - entries.addAll(registries.getOrThrow(CharacterMaterialsME.Keys.CLOTHING_KEY)); - entries.addAll(registries.getOrThrow(CharacterPatternsME.Keys.CLOTHING_KEY)); - } - - @Override - public String getName() { - return "NpcTextures"; - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/TranslationEntries.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/TranslationEntries.java index d82281ba1e..14227870da 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/TranslationEntries.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/content/TranslationEntries.java @@ -26,10 +26,14 @@ public class TranslationEntries { public static List bannerPatternEntries = new ArrayList<>() { }; - + public static List raceEntries = new ArrayList<>() { + }; public static List factionEntries = new ArrayList<>() { }; - + public static List npcDataEntries = new ArrayList<>() { + }; + public static List structureManagerEntries = new ArrayList<>() { + }; public static List spawnEntries = new ArrayList<>() { }; @@ -414,13 +418,6 @@ public class TranslationEntries { put("spawn."+ MiddleEarth.MOD_ID +".none", "None"); - put("race."+ MiddleEarth.MOD_ID +".dwarf", "Dwarf"); - put("race."+ MiddleEarth.MOD_ID +".elf", "Elf"); - put("race."+ MiddleEarth.MOD_ID +".human", "Human"); - put("race."+ MiddleEarth.MOD_ID +".hobbit", "Hobbit"); - put("race."+ MiddleEarth.MOD_ID +".orc", "Orc"); - put("race."+ MiddleEarth.MOD_ID +".uruk", "Uruk"); - put("race_tooltip."+ MiddleEarth.MOD_ID +".attribute_header", "Attributes , "); put("tooltip."+ MiddleEarth.MOD_ID +".arkenstone_lore_0", "The fairest of gems found beneath"); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/custom/ArtisanTableRecipeJsonBuilder.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/custom/ArtisanTableRecipeJsonBuilder.java index 085080d67d..d6f4e955a0 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/custom/ArtisanTableRecipeJsonBuilder.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/custom/ArtisanTableRecipeJsonBuilder.java @@ -7,7 +7,7 @@ import net.minecraft.registry.RegistryEntryLookup; import net.minecraft.registry.RegistryKey; import net.sevenstars.middleearth.recipe.ArtisanRecipe; -import net.sevenstars.middleearth.resources.datas.Disposition; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; import net.minecraft.advancement.Advancement; import net.minecraft.advancement.AdvancementCriterion; import net.minecraft.advancement.AdvancementRequirements; @@ -32,18 +32,18 @@ public class ArtisanTableRecipeJsonBuilder implements CraftingRecipeJsonBuilder private final String tab; private final DefaultedList inputs = DefaultedList.of(); private final ItemStack output; - private final Disposition disposition; + private final DispositionType dispositionType; private final Map> criteria = new LinkedHashMap<>(); private String group; private final RegistryEntryLookup registryLookup; - public ArtisanTableRecipeJsonBuilder(RegistryEntryLookup registryLookup, RecipeCategory category, ItemStack output, String tab, Disposition disposition) { + public ArtisanTableRecipeJsonBuilder(RegistryEntryLookup registryLookup, RecipeCategory category, ItemStack output, String tab, DispositionType dispositionType) { this.registryLookup = registryLookup; this.category = category; this.output = output; this.tab = tab; - this.disposition = disposition; + this.dispositionType = dispositionType; } @Override @@ -63,12 +63,12 @@ public void offerTo(RecipeExporter exporter, RegistryKey> recipeKey) { Advancement.Builder builder = exporter.getAdvancementBuilder().criterion("has_the_recipe", RecipeUnlockedCriterion.create(recipeKey)).rewards(AdvancementRewards.Builder.recipe(recipeKey)).criteriaMerger(AdvancementRequirements.CriterionMerger.OR); Objects.requireNonNull(builder); this.criteria.forEach(builder::criterion); - ArtisanRecipe artisanRecipe = new ArtisanRecipe(this.tab, this.output, this.inputs, this.disposition.toString().toLowerCase()); + ArtisanRecipe artisanRecipe = new ArtisanRecipe(this.tab, this.output, this.inputs, this.dispositionType.toString().toLowerCase()); exporter.accept(recipeKey, artisanRecipe, builder.build(recipeKey.getValue().withPrefixedPath("recipes/" + this.category.getName() + "/"))); } - public static ArtisanTableRecipeJsonBuilder createArtisanRecipe(RegistryEntryLookup registryLookup, RecipeCategory category, ItemStack output, String tab, Disposition disposition) { - return new ArtisanTableRecipeJsonBuilder(registryLookup, category, output, tab, disposition); + public static ArtisanTableRecipeJsonBuilder createArtisanRecipe(RegistryEntryLookup registryLookup, RecipeCategory category, ItemStack output, String tab, DispositionType dispositionType) { + return new ArtisanTableRecipeJsonBuilder(registryLookup, category, output, tab, dispositionType); } public static ArtisanTableRecipeJsonBuilder createArtisanRecipe(RegistryEntryLookup registryLookup, RecipeCategory category, ItemStack output, String tab) { return new ArtisanTableRecipeJsonBuilder(registryLookup, category, output, tab, null); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/LanguageProvider.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/LanguageProvider.java index 3b61362d20..5312a31960 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/LanguageProvider.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/LanguageProvider.java @@ -10,7 +10,7 @@ import net.sevenstars.middleearth.datageneration.content.TranslationEntries; import net.sevenstars.middleearth.item.utils.armor.backAttachments.BackAttachmentsME; import net.sevenstars.middleearth.item.utils.armor.helmetAttachments.HelmetAttachmentsME; -import net.sevenstars.middleearth.resources.datas.Disposition; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; import java.util.Arrays; import java.util.HashMap; @@ -82,14 +82,26 @@ public void generateTranslations(RegistryWrapper.WrapperLookup wrapperLookup, Tr createTranslation(translationBuilder, "tooltip", hood.getName()); } - for (Disposition disposition : Disposition.values()){ - createTranslation(translationBuilder, "disposition", disposition.name().toLowerCase()); + for (DispositionType dispositionType : DispositionType.values()){ + createTranslation(translationBuilder, "disposition", dispositionType.name().toLowerCase()); } TranslationEntries.factionEntries.forEach(faction -> { createTranslation(translationBuilder, "faction", faction); }); + TranslationEntries.npcDataEntries.forEach(npcData -> { + createNpcDataTranslation(translationBuilder, "npc_data", npcData); + }); + + TranslationEntries.structureManagerEntries.forEach(structureManager -> { + createTranslation(translationBuilder, "structure_manager", structureManager); + }); + + TranslationEntries.raceEntries.forEach(race -> { + createTranslation(translationBuilder, "race", race); + }); + TranslationEntries.spawnEntries.forEach(faction -> { createTranslation(translationBuilder, "spawn", faction); }); @@ -117,23 +129,48 @@ public void createTranslation(TranslationBuilder translationBuilder, String pref translationBuilder.add(prefix + "." + MiddleEarth.MOD_ID + "." + suffix, generateName(suffixSplit)); } + public void createNpcDataTranslation(TranslationBuilder translationBuilder, String prefix, String suffix) { + + StringBuilder generatedName = new StringBuilder(); + if (suffix.contains(".")){ + String [] sub = suffix.split("\\."); + var splitId = Arrays.stream(sub).toList(); + + if(splitId.size() == 3) // Removes the faction when it's a subfaction (Longbeards Erebor Soldier -> Erebor Soldier) + { + splitId = Arrays.asList(splitId.get(1), splitId.get(2)); + } + + for(String rawName : splitId){ + if(!generatedName.isEmpty() && (!generatedName.toString().endsWith(" ") || !generatedName.toString().endsWith("-"))) + generatedName.append(" "); + + generatedName.append(generateName(rawName)); + } + } + + translationBuilder.add(prefix + "." + MiddleEarth.MOD_ID + "." + suffix, generatedName.toString()); + } + public void createBannerTranslation(TranslationBuilder translationBuilder, String prefix, String suffix){ - translationBuilder.add(prefix + "." + MiddleEarth.MOD_ID + "." + suffix + ".black", "Black " + generateName(suffix)); - translationBuilder.add(prefix + "." + MiddleEarth.MOD_ID + "." + suffix + ".blue", "Blue " + generateName(suffix)); - translationBuilder.add(prefix + "." + MiddleEarth.MOD_ID + "." + suffix + ".brown", "Brown " + generateName(suffix)); - translationBuilder.add(prefix + "." + MiddleEarth.MOD_ID + "." + suffix + ".cyan", "Cyan " + generateName(suffix)); - translationBuilder.add(prefix + "." + MiddleEarth.MOD_ID + "." + suffix + ".gray", "Gray " + generateName(suffix)); - translationBuilder.add(prefix + "." + MiddleEarth.MOD_ID + "." + suffix + ".green", "Green " + generateName(suffix)); - translationBuilder.add(prefix + "." + MiddleEarth.MOD_ID + "." + suffix + ".light_blue", "Light Blue " + generateName(suffix)); - translationBuilder.add(prefix + "." + MiddleEarth.MOD_ID + "." + suffix + ".light_gray", "light Gray " + generateName(suffix)); - translationBuilder.add(prefix + "." + MiddleEarth.MOD_ID + "." + suffix + ".lime", "Lime " + generateName(suffix)); - translationBuilder.add(prefix + "." + MiddleEarth.MOD_ID + "." + suffix + ".magenta", "Magenta " + generateName(suffix)); - translationBuilder.add(prefix + "." + MiddleEarth.MOD_ID + "." + suffix + ".orange", "Orange " + generateName(suffix)); - translationBuilder.add(prefix + "." + MiddleEarth.MOD_ID + "." + suffix + ".pink", "Pink " + generateName(suffix)); - translationBuilder.add(prefix + "." + MiddleEarth.MOD_ID + "." + suffix + ".purple", "Purple " + generateName(suffix)); - translationBuilder.add(prefix + "." + MiddleEarth.MOD_ID + "." + suffix + ".red", "Red " + generateName(suffix)); - translationBuilder.add(prefix + "." + MiddleEarth.MOD_ID + "." + suffix + ".white", "White " + generateName(suffix)); - translationBuilder.add(prefix + "." + MiddleEarth.MOD_ID + "." + suffix + ".yellow", "yellow " + generateName(suffix)); + String baseTranslationKey = prefix + "." + MiddleEarth.MOD_ID + "." + suffix; + + translationBuilder.add(baseTranslationKey + ".black", "Black " + generateName(suffix)); + translationBuilder.add(baseTranslationKey + ".blue", "Blue " + generateName(suffix)); + translationBuilder.add(baseTranslationKey + ".brown", "Brown " + generateName(suffix)); + translationBuilder.add(baseTranslationKey + ".cyan", "Cyan " + generateName(suffix)); + translationBuilder.add(baseTranslationKey + ".gray", "Gray " + generateName(suffix)); + translationBuilder.add(baseTranslationKey + ".green", "Green " + generateName(suffix)); + translationBuilder.add(baseTranslationKey + ".light_blue", "Light Blue " + generateName(suffix)); + translationBuilder.add(baseTranslationKey + ".light_gray", "light Gray " + generateName(suffix)); + translationBuilder.add(baseTranslationKey + ".lime", "Lime " + generateName(suffix)); + translationBuilder.add(baseTranslationKey + ".magenta", "Magenta " + generateName(suffix)); + translationBuilder.add(baseTranslationKey + ".orange", "Orange " + generateName(suffix)); + translationBuilder.add(baseTranslationKey + ".pink", "Pink " + generateName(suffix)); + translationBuilder.add(baseTranslationKey + ".purple", "Purple " + generateName(suffix)); + translationBuilder.add(baseTranslationKey + ".red", "Red " + generateName(suffix)); + translationBuilder.add(baseTranslationKey + ".white", "White " + generateName(suffix)); + translationBuilder.add(baseTranslationKey + ".yellow", "yellow " + generateName(suffix)); } public String generateName(String registryName) { diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/BiomeEventProvider.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/dynamic/BiomeEventProvider.java similarity index 69% rename from middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/BiomeEventProvider.java rename to middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/dynamic/BiomeEventProvider.java index 74a4587858..c4280e2957 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/BiomeEventProvider.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/dynamic/BiomeEventProvider.java @@ -1,9 +1,9 @@ -package net.sevenstars.middleearth.datageneration.providers; +package net.sevenstars.middleearth.datageneration.providers.dynamic; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricDynamicRegistryProvider; import net.minecraft.registry.RegistryWrapper; -import net.sevenstars.middleearth.resources.BiomeEventsME; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; import java.util.concurrent.CompletableFuture; @@ -14,11 +14,11 @@ public BiomeEventProvider(FabricDataOutput output, CompletableFuture registriesFuture) { + super(output, registriesFuture); + } + + @Override + protected void configure(RegistryWrapper.WrapperLookup registries, FabricDynamicRegistryProvider.Entries entries) { + entries.addAll(registries.getOrThrow(DynamicRegistriesME.SKIN_PATTERN)); + entries.addAll(registries.getOrThrow(DynamicRegistriesME.SKIN_MATERIAL)); + entries.addAll(registries.getOrThrow(DynamicRegistriesME.EYE_PATTERN)); + entries.addAll(registries.getOrThrow(DynamicRegistriesME.EYE_MATERIAL)); + entries.addAll(registries.getOrThrow(DynamicRegistriesME.HAIR_PATTERN)); + entries.addAll(registries.getOrThrow(DynamicRegistriesME.HAIR_MATERIAL)); + } + + @Override + public String getName() { + return "CharacterAtlasTextures"; + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/FactionProvider.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/dynamic/FactionProvider.java similarity index 69% rename from middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/FactionProvider.java rename to middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/dynamic/FactionProvider.java index 7087efb3a7..d1f2914c35 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/FactionProvider.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/dynamic/FactionProvider.java @@ -1,9 +1,9 @@ -package net.sevenstars.middleearth.datageneration.providers; +package net.sevenstars.middleearth.datageneration.providers.dynamic; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricDynamicRegistryProvider; -import net.sevenstars.middleearth.resources.FactionsME; import net.minecraft.registry.RegistryWrapper; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; import java.util.concurrent.CompletableFuture; @@ -14,11 +14,11 @@ public FactionProvider(FabricDataOutput output, CompletableFuture registriesFuture) { +public class TexturePresetsProvider extends FabricDynamicRegistryProvider { + public TexturePresetsProvider(FabricDataOutput output, CompletableFuture registriesFuture) { super(output, registriesFuture); } @Override protected void configure(RegistryWrapper.WrapperLookup registries, Entries entries) { - entries.addAll(registries.getOrThrow(NpcTextureDatasME.KEY)); + entries.addAll(registries.getOrThrow(DynamicRegistriesME.TEXTURE_PRESETS)); } @Override public String getName() { - return "NpcTextureData"; + return DynamicRegistriesME.TEXTURE_PRESETS.getValue().getPath(); } } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/models/ItemModelProvider.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/models/ItemModelProvider.java index 3cb451a052..7d586f1e7f 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/models/ItemModelProvider.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/models/ItemModelProvider.java @@ -32,7 +32,7 @@ import net.sevenstars.middleearth.item.WeaponItemsME; import net.sevenstars.middleearth.item.items.weapons.CustomLongswordWeaponItem; import net.sevenstars.middleearth.item.utils.SmithingTrimMaterialsME; -import net.sevenstars.middleearth.resources.NpcME; +import net.sevenstars.middleearth.registries.content.npcs.NpcRegistry; import java.util.ArrayList; import java.util.Iterator; @@ -169,17 +169,19 @@ public void generateItemModels(ItemModelGenerator itemModelGenerator) { registerPalettedItem(ResourceItemsME.SHIELD_BORDER, itemModelGenerator); registerPalettedItem(ResourceItemsME.SHIELD_PLATE, itemModelGenerator); - int index = 0; - List models = new ArrayList<>(List.of()); - NpcME.allNpcDatas.forEach(npcDataRegistryKey -> { + NpcRegistry.allNpcDatas.forEach(npcDataRegistryKey -> { String id = npcDataRegistryKey.getValue().getPath().replaceAll("npc_data.middle-earth.", "").replaceAll("\\.", "_") + "_spawn_egg"; - models.add(ItemModels.switchCase(id, - ItemModels.basic(Models.GENERATED.upload(Identifier.of(MiddleEarth.MOD_ID, "item/" + id), - TextureMap.layer0(Identifier.of(MiddleEarth.MOD_ID, "item/" + id)), + + var item = ItemModels.switchCase(id, + ItemModels.basic(Models.GENERATED.upload(MiddleEarth.of("item/" + id), + TextureMap.layer0(MiddleEarth.of( "item/" + id)), itemModelGenerator.modelCollector - )))); + ))); + + if(!models.contains(item)) + models.add(item); }); ItemModel.Unbaked fallbackModel = ItemModels.basic(itemModelGenerator.upload(EggItemsME.NPC_SPAWN_EGG, Models.GENERATED)); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/recipes/ArtisanTableArmorRecipeProvider.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/recipes/ArtisanTableArmorRecipeProvider.java index d0ebf7b14e..8634e015c4 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/recipes/ArtisanTableArmorRecipeProvider.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/recipes/ArtisanTableArmorRecipeProvider.java @@ -25,7 +25,7 @@ import net.sevenstars.middleearth.item.EquipmentItemsME; import net.sevenstars.middleearth.item.ResourceItemsME; import net.sevenstars.middleearth.item.utils.SmithingTrimPatternsME; -import net.sevenstars.middleearth.resources.datas.Disposition; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; import java.util.concurrent.CompletableFuture; @@ -155,7 +155,7 @@ public void generate() { bronzeArmorPlate.set(DataComponentTypes.TRIM, new ArmorTrim(getArmorTrimMaterialsRegistry().getOrThrow(RegistryKey.of(RegistryKeys.TRIM_MATERIAL, Identifier.of(MiddleEarth.MOD_ID, MetalTypes.BRONZE.getName()))), getPattern())); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.SHIRRIFF_HAT.getDefaultStack(), "hat", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.SHIRRIFF_HAT.getDefaultStack(), "hat", DispositionType.GOOD) .input(Items.STRING) .input(Items.LEATHER) .input(Items.FEATHER) @@ -170,7 +170,7 @@ public void generate() { //region GENERIC //T1 - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.STRAW_HAT.getDefaultStack(), "hat", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.STRAW_HAT.getDefaultStack(), "hat", DispositionType.NEUTRAL) .input(Items.STRING) .input(ResourceItemsME.STRAW) .input(Items.STRING) @@ -180,7 +180,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.STRAW)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WOVEN_HAT.getDefaultStack(), "hat", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WOVEN_HAT.getDefaultStack(), "hat", DispositionType.NEUTRAL) .input(Items.STRING) .input(Items.WHITE_WOOL) .input(Items.STRING) @@ -190,7 +190,7 @@ public void generate() { conditionsFromItem(Items.WHITE_WOOL)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BYCOCKET.getDefaultStack(), "hat", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BYCOCKET.getDefaultStack(), "hat", DispositionType.NEUTRAL) .input(Items.LEATHER) .input(Items.WHITE_WOOL) .input(Items.LEATHER) @@ -200,7 +200,7 @@ public void generate() { conditionsFromItem(Items.WHITE_WOOL)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WANDERER_HAT.getDefaultStack(), "hat", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WANDERER_HAT.getDefaultStack(), "hat", DispositionType.NEUTRAL) .input(ResourceItemsME.FABRIC) .input(Items.LEATHER) .input(ResourceItemsME.FABRIC) @@ -210,7 +210,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ARMING_COAT.getDefaultStack(), "chestplate", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ARMING_COAT.getDefaultStack(), "chestplate", DispositionType.NEUTRAL) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) @@ -223,7 +223,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ARMING_SKIRT.getDefaultStack(), "leggings", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ARMING_SKIRT.getDefaultStack(), "leggings", DispositionType.NEUTRAL) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) @@ -235,7 +235,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.SHOES.getDefaultStack(), "boots", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.SHOES.getDefaultStack(), "boots", DispositionType.NEUTRAL) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) @@ -244,7 +244,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WORK_SHOES.getDefaultStack(), "boots", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WORK_SHOES.getDefaultStack(), "boots", DispositionType.NEUTRAL) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) @@ -254,7 +254,7 @@ public void generate() { .offerTo(exporter); //T2 - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LEATHER_SKULLCAP.getDefaultStack(), "helmet", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LEATHER_SKULLCAP.getDefaultStack(), "helmet", DispositionType.NEUTRAL) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -264,7 +264,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GAMBESON_CAP.getDefaultStack(), "helmet", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GAMBESON_CAP.getDefaultStack(), "helmet", DispositionType.NEUTRAL) .input(Items.LEATHER) .input(Items.WHITE_WOOL) .input(Items.LEATHER) @@ -274,7 +274,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GAMBESON_COWL.getDefaultStack(), "helmet", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GAMBESON_COWL.getDefaultStack(), "helmet", DispositionType.NEUTRAL) .input(Items.LEATHER) .input(Items.WHITE_WOOL) .input(Items.LEATHER) @@ -284,7 +284,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.KETTLE_HAT.getDefaultStack(), "helmet", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.KETTLE_HAT.getDefaultStack(), "helmet", DispositionType.NEUTRAL) .input(Items.IRON_NUGGET) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) .input(Items.IRON_NUGGET) @@ -294,7 +294,7 @@ public void generate() { conditionsFromItem(ironArmorPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GAMBESON.getDefaultStack(), "chestplate", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GAMBESON.getDefaultStack(), "chestplate", DispositionType.NEUTRAL) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(Items.LEATHER) @@ -307,7 +307,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LEATHER_VEST.getDefaultStack(), "chestplate", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LEATHER_VEST.getDefaultStack(), "chestplate", DispositionType.NEUTRAL) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -320,7 +320,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LEATHER_SCALE_VEST.getDefaultStack(), "chestplate", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LEATHER_SCALE_VEST.getDefaultStack(), "chestplate", DispositionType.NEUTRAL) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -333,7 +333,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.STURDY_BOOTS.getDefaultStack(), "boots", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.STURDY_BOOTS.getDefaultStack(), "boots", DispositionType.NEUTRAL) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -342,7 +342,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.TRAVELLING_BOOTS.getDefaultStack(), "boots", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.TRAVELLING_BOOTS.getDefaultStack(), "boots", DispositionType.NEUTRAL) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -351,7 +351,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.HIGH_CUT_BOOTS.getDefaultStack(), "boots", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.HIGH_CUT_BOOTS.getDefaultStack(), "boots", DispositionType.NEUTRAL) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -360,7 +360,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); //T3 - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MAIL_COIF.getDefaultStack(), "helmet", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MAIL_COIF.getDefaultStack(), "helmet", DispositionType.NEUTRAL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -370,7 +370,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.CLOSED_MAIL_COIF.getDefaultStack(), "helmet", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.CLOSED_MAIL_COIF.getDefaultStack(), "helmet", DispositionType.NEUTRAL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -380,21 +380,21 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.KETTLE_HAT_WITH_COIF.getDefaultStack(), "helmet", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.KETTLE_HAT_WITH_COIF.getDefaultStack(), "helmet", DispositionType.NEUTRAL) .input(EquipmentItemsME.MAIL_COIF) .input(EquipmentItemsME.KETTLE_HAT) .criterion(hasItem(EquipmentItemsME.MAIL_COIF), conditionsFromItem(EquipmentItemsME.MAIL_COIF)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.KETTLE_HAT_WITH_CLOSED_COIF.getDefaultStack(), "helmet", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.KETTLE_HAT_WITH_CLOSED_COIF.getDefaultStack(), "helmet", DispositionType.NEUTRAL) .input(EquipmentItemsME.CLOSED_MAIL_COIF) .input(EquipmentItemsME.KETTLE_HAT) .criterion(hasItem(EquipmentItemsME.CLOSED_MAIL_COIF), conditionsFromItem(EquipmentItemsME.CLOSED_MAIL_COIF)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.OPEN_FACE_HELMET.getDefaultStack(), "helmet", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.OPEN_FACE_HELMET.getDefaultStack(), "helmet", DispositionType.NEUTRAL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironHelmetPlate.getItem()), ironHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) @@ -404,7 +404,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MAIL_HAUBERK.getDefaultStack(), "chestplate", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MAIL_HAUBERK.getDefaultStack(), "chestplate", DispositionType.NEUTRAL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -417,7 +417,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MAIL_SHIRT.getDefaultStack(), "chestplate", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MAIL_SHIRT.getDefaultStack(), "chestplate", DispositionType.NEUTRAL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -430,7 +430,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MAIL_SKIRT.getDefaultStack(), "leggings", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MAIL_SKIRT.getDefaultStack(), "leggings", DispositionType.NEUTRAL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -443,7 +443,7 @@ public void generate() { .offerTo(exporter); //T4 - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.SALLET.getDefaultStack(), "helmet", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.SALLET.getDefaultStack(), "helmet", DispositionType.NEUTRAL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelHelmetPlate.getItem()), steelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -454,7 +454,7 @@ public void generate() { .offerTo(exporter); //HOODS - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.HOOD.getDefaultStack(), "helmetAttachment", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.HOOD.getDefaultStack(), "helmetAttachment", DispositionType.NEUTRAL) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) @@ -465,7 +465,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.TALL_HOOD.getDefaultStack(), "helmetAttachment", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.TALL_HOOD.getDefaultStack(), "helmetAttachment", DispositionType.NEUTRAL) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) @@ -476,7 +476,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BLACK_FUR_HOOD.getDefaultStack(), "helmetAttachment", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BLACK_FUR_HOOD.getDefaultStack(), "helmetAttachment", DispositionType.NEUTRAL) .input(ResourceItemsME.FUR) .input(EquipmentItemsME.HOOD) .input(ResourceItemsME.FUR) @@ -487,7 +487,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.HOOD)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BROWN_FUR_HOOD.getDefaultStack(), "helmetAttachment", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BROWN_FUR_HOOD.getDefaultStack(), "helmetAttachment", DispositionType.NEUTRAL) .input(ResourceItemsME.FUR) .input(EquipmentItemsME.HOOD) .input(ResourceItemsME.FUR) @@ -498,7 +498,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.HOOD)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GRAY_FUR_HOOD.getDefaultStack(), "helmetAttachment", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GRAY_FUR_HOOD.getDefaultStack(), "helmetAttachment", DispositionType.NEUTRAL) .input(ResourceItemsME.FUR) .input(EquipmentItemsME.HOOD) .input(ResourceItemsME.FUR) @@ -509,7 +509,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.HOOD)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.TAN_FUR_HOOD.getDefaultStack(), "helmetAttachment", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.TAN_FUR_HOOD.getDefaultStack(), "helmetAttachment", DispositionType.NEUTRAL) .input(ResourceItemsME.FUR) .input(EquipmentItemsME.HOOD) .input(ResourceItemsME.FUR) @@ -520,7 +520,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.HOOD)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WHITE_FUR_HOOD.getDefaultStack(), "helmetAttachment", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WHITE_FUR_HOOD.getDefaultStack(), "helmetAttachment", DispositionType.NEUTRAL) .input(ResourceItemsME.FUR) .input(EquipmentItemsME.HOOD) .input(ResourceItemsME.FUR) @@ -532,7 +532,7 @@ public void generate() { .offerTo(exporter); //CAPES - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.CAPE.getDefaultStack(), "backAttachment", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.CAPE.getDefaultStack(), "backAttachment", DispositionType.NEUTRAL) .input(ResourceItemsME.FABRIC) .input(Items.STRING) .input(ResourceItemsME.FABRIC) @@ -546,7 +546,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.SURCOAT.getDefaultStack(), "backAttachment", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.SURCOAT.getDefaultStack(), "backAttachment", DispositionType.NEUTRAL) .input(ResourceItemsME.FABRIC) .input(Items.STRING) .input(ResourceItemsME.FABRIC) @@ -560,7 +560,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.CLOAK.getDefaultStack(), "backAttachment", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.CLOAK.getDefaultStack(), "backAttachment", DispositionType.NEUTRAL) .input(ResourceItemsME.FABRIC) .input(Items.STRING) .input(ResourceItemsME.FABRIC) @@ -574,7 +574,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WANDERER_ROBES.getDefaultStack(), "backAttachment", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WANDERER_ROBES.getDefaultStack(), "backAttachment", DispositionType.NEUTRAL) .input(ResourceItemsME.FABRIC) .input(Items.LEATHER) .input(ResourceItemsME.FABRIC) @@ -589,7 +589,7 @@ public void generate() { .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BLACK_FUR_CLOAK.getDefaultStack(), "backAttachment", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BLACK_FUR_CLOAK.getDefaultStack(), "backAttachment", DispositionType.NEUTRAL) .input(Items.STRING) .input(EquipmentItemsME.BLACK_FUR) .input(Items.STRING) @@ -600,7 +600,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.CLOAK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BROWN_FUR_CLOAK.getDefaultStack(), "backAttachment", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BROWN_FUR_CLOAK.getDefaultStack(), "backAttachment", DispositionType.NEUTRAL) .input(Items.STRING) .input(EquipmentItemsME.BROWN_FUR) .input(Items.STRING) @@ -611,7 +611,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.CLOAK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GRAY_FUR_CLOAK.getDefaultStack(), "backAttachment", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GRAY_FUR_CLOAK.getDefaultStack(), "backAttachment", DispositionType.NEUTRAL) .input(Items.STRING) .input(EquipmentItemsME.GRAY_FUR) .input(Items.STRING) @@ -622,7 +622,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.CLOAK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.TAN_FUR_CLOAK.getDefaultStack(), "backAttachment", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.TAN_FUR_CLOAK.getDefaultStack(), "backAttachment", DispositionType.NEUTRAL) .input(Items.STRING) .input(EquipmentItemsME.TAN_FUR) .input(Items.STRING) @@ -633,7 +633,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.CLOAK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WHITE_FUR_CLOAK.getDefaultStack(), "backAttachment", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WHITE_FUR_CLOAK.getDefaultStack(), "backAttachment", DispositionType.NEUTRAL) .input(Items.STRING) .input(EquipmentItemsME.WHITE_FUR) .input(Items.STRING) @@ -644,7 +644,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.CLOAK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BLACK_FUR.getDefaultStack(), "backAttachment", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BLACK_FUR.getDefaultStack(), "backAttachment", DispositionType.NEUTRAL) .input(ResourceItemsME.FUR) .input(ResourceItemsME.FUR) .input(ResourceItemsME.FUR) @@ -655,7 +655,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BROWN_FUR.getDefaultStack(), "backAttachment", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BROWN_FUR.getDefaultStack(), "backAttachment", DispositionType.NEUTRAL) .input(ResourceItemsME.FUR) .input(ResourceItemsME.FUR) .input(ResourceItemsME.FUR) @@ -666,7 +666,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GRAY_FUR.getDefaultStack(), "backAttachment", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GRAY_FUR.getDefaultStack(), "backAttachment", DispositionType.NEUTRAL) .input(ResourceItemsME.FUR) .input(ResourceItemsME.FUR) .input(ResourceItemsME.FUR) @@ -677,7 +677,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.TAN_FUR.getDefaultStack(), "backAttachment", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.TAN_FUR.getDefaultStack(), "backAttachment", DispositionType.NEUTRAL) .input(ResourceItemsME.FUR) .input(ResourceItemsME.FUR) .input(ResourceItemsME.FUR) @@ -688,7 +688,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WHITE_FUR.getDefaultStack(), "backAttachment", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WHITE_FUR.getDefaultStack(), "backAttachment", DispositionType.NEUTRAL) .input(ResourceItemsME.FUR) .input(ResourceItemsME.FUR) .input(ResourceItemsME.FUR) @@ -702,7 +702,7 @@ public void generate() { //region GONDOR //T2 - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_BOOTS.getDefaultStack(), "boots", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_BOOTS.getDefaultStack(), "boots", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -712,7 +712,7 @@ public void generate() { .offerTo(exporter); //T3 - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_CABASSET_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_CABASSET_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironHelmetPlate.getItem()), ironHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) @@ -722,7 +722,7 @@ public void generate() { conditionsFromItem(ironHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_MAIL_HAUBERK.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_MAIL_HAUBERK.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -735,7 +735,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_LEATHER_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_LEATHER_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -748,7 +748,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.GONDORIAN_MAIL_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_LEATHER_CUIRASS.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_LEATHER_CUIRASS.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -761,7 +761,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.GONDORIAN_MAIL_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_TABBARD.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_TABBARD.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) @@ -774,7 +774,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.GONDORIAN_MAIL_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_MAIL_COAT.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_MAIL_COAT.getDefaultStack(), "leggings", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -787,7 +787,7 @@ public void generate() { .offerTo(exporter); //T4 - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_SOLDIER_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_SOLDIER_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelHelmetPlate.getItem()), steelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -797,7 +797,7 @@ public void generate() { conditionsFromItem(steelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_SOLDIER_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_SOLDIER_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .input(ResourceItemsME.FABRIC) @@ -811,7 +811,7 @@ public void generate() { .offerTo(exporter); //T5 PLATE - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_PLATE_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_PLATE_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelHelmetPlate.getItem()), steelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -821,7 +821,7 @@ public void generate() { conditionsFromItem(steelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_PLATE_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_PLATE_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelChainmail.getItem()), steelChainmail.getComponentChanges())) @@ -834,7 +834,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.GONDORIAN_SOLDIER_CHESTPLATE)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_PLATE_LEGGINGS.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_PLATE_LEGGINGS.getDefaultStack(), "leggings", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .input(EquipmentItemsME.GONDORIAN_MAIL_COAT) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -846,7 +846,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.GONDORIAN_MAIL_COAT)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_PLATE_BOOTS.getDefaultStack(), "boots", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_PLATE_BOOTS.getDefaultStack(), "boots", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -856,7 +856,7 @@ public void generate() { .offerTo(exporter); //T5 CAPTAIN - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_CAPTAIN_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_CAPTAIN_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) .input(EquipmentItemsME.GONDORIAN_PLATE_HELMET) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) @@ -867,7 +867,7 @@ public void generate() { .offerTo(exporter); //T5 KING'S GUARD - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_KINGS_GUARD_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_KINGS_GUARD_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .input(Items.FEATHER) .input(EquipmentItemsME.GONDORIAN_PLATE_HELMET) .input(Items.FEATHER) @@ -877,7 +877,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.GONDORIAN_PLATE_HELMET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_KINGS_GUARD_CHESTKPLATE.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_KINGS_GUARD_CHESTKPLATE.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) .input(ResourceItemsME.FABRIC) @@ -890,7 +890,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.GONDORIAN_PLATE_CHESTPLATE)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_KINGS_GUARD_LEGGINGS.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_KINGS_GUARD_LEGGINGS.getDefaultStack(), "leggings", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelChainmail.getItem()), steelChainmail.getComponentChanges())) .input(EquipmentItemsME.GONDORIAN_PLATE_LEGGINGS) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelChainmail.getItem()), steelChainmail.getComponentChanges())) @@ -902,7 +902,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.GONDORIAN_PLATE_LEGGINGS)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_KINGS_GUARD_BOOTS.getDefaultStack(), "boots", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_KINGS_GUARD_BOOTS.getDefaultStack(), "boots", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -912,7 +912,7 @@ public void generate() { .offerTo(exporter); //T5 CITADEL GUARD - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_CITADEL_GUARD_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_CITADEL_GUARD_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) .input(EquipmentItemsME.GONDORIAN_PLATE_HELMET) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) @@ -922,7 +922,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.GONDORIAN_PLATE_HELMET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_CITADEL_GUARD_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_CITADEL_GUARD_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) @@ -935,7 +935,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.GONDORIAN_PLATE_CHESTPLATE)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_CITADEL_GUARD_LEGGINGS.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_CITADEL_GUARD_LEGGINGS.getDefaultStack(), "leggings", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelChainmail.getItem()), steelChainmail.getComponentChanges())) .input(EquipmentItemsME.GONDORIAN_PLATE_LEGGINGS) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelChainmail.getItem()), steelChainmail.getComponentChanges())) @@ -947,7 +947,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.GONDORIAN_PLATE_LEGGINGS)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_CITADEL_GUARD_BOOTS.getDefaultStack(), "boots", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_CITADEL_GUARD_BOOTS.getDefaultStack(), "boots", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -957,7 +957,7 @@ public void generate() { .offerTo(exporter); //T5 FOUNTAIN GUARD - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_FOUNTAIN_GUARD_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_FOUNTAIN_GUARD_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .input(ResourceItemsME.MITHRIL_NUGGET) .input(EquipmentItemsME.GONDORIAN_CAPTAIN_HELMET) .input(ResourceItemsME.MITHRIL_NUGGET) @@ -967,7 +967,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.GONDORIAN_CAPTAIN_HELMET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_FOUNTAIN_GUARD_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_FOUNTAIN_GUARD_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) @@ -980,7 +980,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.GONDORIAN_PLATE_CHESTPLATE)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_FOUNTAIN_GUARD_LEGGINGS.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_FOUNTAIN_GUARD_LEGGINGS.getDefaultStack(), "leggings", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(EquipmentItemsME.GONDORIAN_PLATE_LEGGINGS) .input(ResourceItemsME.FABRIC) @@ -992,7 +992,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.GONDORIAN_PLATE_LEGGINGS)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_FOUNTAIN_GUARD_BOOTS.getDefaultStack(), "boots", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_FOUNTAIN_GUARD_BOOTS.getDefaultStack(), "boots", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -1002,7 +1002,7 @@ public void generate() { .offerTo(exporter); //HOODS - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_CITADEL_GUARD_HOOD.getDefaultStack(), "helmetAttachment", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_CITADEL_GUARD_HOOD.getDefaultStack(), "helmetAttachment", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) @@ -1014,7 +1014,7 @@ public void generate() { .offerTo(exporter); //CAPES - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_CAPTAIN_CAPE.getDefaultStack(), "backAttachment", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_CAPTAIN_CAPE.getDefaultStack(), "backAttachment", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(Items.IRON_NUGGET) .input(ResourceItemsME.FABRIC) @@ -1028,7 +1028,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_HERO_CAPE.getDefaultStack(), "backAttachment", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_HERO_CAPE.getDefaultStack(), "backAttachment", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(Items.IRON_NUGGET) .input(ResourceItemsME.FABRIC) @@ -1042,7 +1042,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_KINGS_GUARD_CAPE.getDefaultStack(), "backAttachment", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_KINGS_GUARD_CAPE.getDefaultStack(), "backAttachment", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(Items.GOLD_NUGGET) .input(ResourceItemsME.FABRIC) @@ -1056,7 +1056,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_CITADEL_GUARD_CAPE.getDefaultStack(), "backAttachment", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_CITADEL_GUARD_CAPE.getDefaultStack(), "backAttachment", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(Items.GOLD_NUGGET) .input(ResourceItemsME.FABRIC) @@ -1070,7 +1070,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_FOUNTAIN_GUARD_CAPE.getDefaultStack(), "backAttachment", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_FOUNTAIN_GUARD_CAPE.getDefaultStack(), "backAttachment", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(Items.GOLD_NUGGET) .input(ResourceItemsME.FABRIC) @@ -1087,7 +1087,7 @@ public void generate() { //region ROHAN //T1 - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_REINFORCED_COAT.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_REINFORCED_COAT.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) @@ -1101,7 +1101,7 @@ public void generate() { .offerTo(exporter); //T2 - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_LEATHER_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_LEATHER_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -1111,7 +1111,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_REINFORCED_LEATHER_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_REINFORCED_LEATHER_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -1121,7 +1121,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_ORNAMENTED_LEATHER_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_ORNAMENTED_LEATHER_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -1131,7 +1131,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_LEATHER_VEST.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_LEATHER_VEST.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.LEATHER) .input(ResourceItemsME.FABRIC) @@ -1144,7 +1144,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.ARMING_COAT)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_LEATHER_SCALE_VEST.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_LEATHER_SCALE_VEST.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.LEATHER) .input(ResourceItemsME.FABRIC) @@ -1157,7 +1157,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.ARMING_COAT)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_GAMBESON.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_GAMBESON.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.LEATHER) .input(ResourceItemsME.FABRIC) @@ -1171,7 +1171,7 @@ public void generate() { .offerTo(exporter); //T3 - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_MILITIA_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_MILITIA_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .input(Items.LEATHER) .componentInput(new ComponentsIngredient(Ingredient.ofItems(bronzeArmorPlate.getItem()), bronzeArmorPlate.getComponentChanges())) .input(Items.LEATHER) @@ -1181,7 +1181,7 @@ public void generate() { conditionsFromItem(bronzeArmorPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_BRACED_MILITIA_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_BRACED_MILITIA_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .input(Items.LEATHER) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) .input(Items.LEATHER) @@ -1191,7 +1191,7 @@ public void generate() { conditionsFromItem(ironArmorPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_REINFORCED_MILITIA_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_REINFORCED_MILITIA_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .input(Items.LEATHER) .componentInput(new ComponentsIngredient(Ingredient.ofItems(bronzeArmorPlate.getItem()), bronzeArmorPlate.getComponentChanges())) .input(Items.LEATHER) @@ -1201,7 +1201,7 @@ public void generate() { conditionsFromItem(bronzeArmorPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_ORNAMENTED_MILITIA_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_ORNAMENTED_MILITIA_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .input(Items.LEATHER) .componentInput(new ComponentsIngredient(Ingredient.ofItems(bronzeArmorPlate.getItem()), bronzeArmorPlate.getComponentChanges())) .input(Items.LEATHER) @@ -1211,7 +1211,7 @@ public void generate() { conditionsFromItem(bronzeArmorPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_REINFORCED_LEATHER_VEST.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_REINFORCED_LEATHER_VEST.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.LEATHER) .input(ResourceItemsME.FABRIC) @@ -1224,7 +1224,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.MAIL_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_REINFORCED_LEATHER_SCALE_VEST.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_REINFORCED_LEATHER_SCALE_VEST.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.LEATHER) .input(ResourceItemsME.FABRIC) @@ -1237,7 +1237,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.MAIL_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_BRACED_MAIL_SHIRT.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_BRACED_MAIL_SHIRT.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.LEATHER) .input(ResourceItemsME.FABRIC) @@ -1251,7 +1251,7 @@ public void generate() { .offerTo(exporter); ///T4 - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_SOLDIER_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_SOLDIER_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelHelmetPlate.getItem()), steelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -1261,7 +1261,7 @@ public void generate() { conditionsFromItem(steelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_ORNAMENTED_SOLDIER_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_ORNAMENTED_SOLDIER_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelHelmetPlate.getItem()), steelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -1271,7 +1271,7 @@ public void generate() { conditionsFromItem(steelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_ROYAL_GUARD_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_ROYAL_GUARD_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelHelmetPlate.getItem()), steelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -1281,7 +1281,7 @@ public void generate() { conditionsFromItem(steelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_SCALE_HAUBERK.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_SCALE_HAUBERK.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelScaleMail.getItem()), steelScaleMail.getComponentChanges())) @@ -1294,7 +1294,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.MAIL_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_ORNAMENTED_SCALE_HAUBERK.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_ORNAMENTED_SCALE_HAUBERK.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(bronzeArmorPlate.getItem()), bronzeArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(bronzeArmorPlate.getItem()), bronzeArmorPlate.getComponentChanges())) .input(ResourceItemsME.FABRIC) @@ -1307,7 +1307,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.MAIL_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_SCALE_JACKET.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_SCALE_JACKET.getDefaultStack(), "leggings", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelScaleMail.getItem()), steelScaleMail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelScaleMail.getItem()), steelScaleMail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelScaleMail.getItem()), steelScaleMail.getComponentChanges())) @@ -1320,7 +1320,7 @@ public void generate() { .offerTo(exporter); //T5 EORLING MARSHAL - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EORLING_MARSHAL_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EORLING_MARSHAL_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelHelmetPlate.getItem()), steelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -1330,7 +1330,7 @@ public void generate() { conditionsFromItem(steelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EORLING_MARSHAL_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EORLING_MARSHAL_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelChainmail.getItem()), steelChainmail.getComponentChanges())) @@ -1343,7 +1343,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.ROHIRRIC_SCALE_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EORLING_MARSHAL_LEGGINGS.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EORLING_MARSHAL_LEGGINGS.getDefaultStack(), "leggings", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .input(EquipmentItemsME.ROHIRRIC_SCALE_JACKET) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -1355,7 +1355,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.ROHIRRIC_SCALE_JACKET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EORLING_MARSHAL_BOOTS.getDefaultStack(), "boots", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EORLING_MARSHAL_BOOTS.getDefaultStack(), "boots", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -1365,7 +1365,7 @@ public void generate() { .offerTo(exporter); //T5 HORSE LORD - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.HORSE_LORD_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.HORSE_LORD_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelHelmetPlate.getItem()), steelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -1375,7 +1375,7 @@ public void generate() { conditionsFromItem(steelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.HORSE_LORD_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.HORSE_LORD_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) @@ -1388,7 +1388,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.ROHIRRIC_SCALE_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.HORSE_LORD_LEGGINGS.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.HORSE_LORD_LEGGINGS.getDefaultStack(), "leggings", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .input(EquipmentItemsME.ROHIRRIC_SCALE_JACKET) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -1400,7 +1400,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.ROHIRRIC_SCALE_JACKET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.HORSE_LORD_BOOTS.getDefaultStack(), "boots", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.HORSE_LORD_BOOTS.getDefaultStack(), "boots", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -1410,7 +1410,7 @@ public void generate() { .offerTo(exporter); //CAPES - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_CAPE.getDefaultStack(), "backAttachment", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_CAPE.getDefaultStack(), "backAttachment", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.BRONZE_NUGGET) .input(ResourceItemsME.FABRIC) @@ -1424,7 +1424,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_ROYAL_GUARD_CAPE.getDefaultStack(), "backAttachment", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_ROYAL_GUARD_CAPE.getDefaultStack(), "backAttachment", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.BRONZE_NUGGET) .input(ResourceItemsME.FABRIC) @@ -1438,7 +1438,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EORLING_MARSHAL_CAPE.getDefaultStack(), "backAttachment", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EORLING_MARSHAL_CAPE.getDefaultStack(), "backAttachment", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.STEEL_NUGGET) .input(ResourceItemsME.FABRIC) @@ -1452,7 +1452,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.HORSE_LORD_CAPE.getDefaultStack(), "backAttachment", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.HORSE_LORD_CAPE.getDefaultStack(), "backAttachment", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.BRONZE_NUGGET) .input(ResourceItemsME.FABRIC) @@ -1470,7 +1470,7 @@ public void generate() { //region DALE //T1 - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_ARMING_COAT_BLACK_FUR.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_ARMING_COAT_BLACK_FUR.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) @@ -1483,7 +1483,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_ARMING_COAT_BROWN_FUR.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_ARMING_COAT_BROWN_FUR.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) @@ -1496,7 +1496,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_ARMING_COAT_TAN_FUR.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_ARMING_COAT_TAN_FUR.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) @@ -1509,7 +1509,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_HEYDAY_ARMING_COAT.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_HEYDAY_ARMING_COAT.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) @@ -1523,7 +1523,7 @@ public void generate() { .offerTo(exporter); //T2 - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_BOOTS.getDefaultStack(), "boots", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_BOOTS.getDefaultStack(), "boots", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -1533,7 +1533,7 @@ public void generate() { .offerTo(exporter); //T3 - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironHelmetPlate.getItem()), ironHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) @@ -1543,7 +1543,7 @@ public void generate() { conditionsFromItem(ironHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_HELMET_BLACK_FUR.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_HELMET_BLACK_FUR.getDefaultStack(), "helmet", DispositionType.GOOD) .input(ResourceItemsME.FUR) .input(EquipmentItemsME.DALISH_HELMET) .input(ResourceItemsME.FUR) @@ -1553,7 +1553,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.DALISH_HELMET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_HELMET_BROWN_FUR.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_HELMET_BROWN_FUR.getDefaultStack(), "helmet", DispositionType.GOOD) .input(ResourceItemsME.FUR) .input(EquipmentItemsME.DALISH_HELMET) .input(ResourceItemsME.FUR) @@ -1563,7 +1563,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.DALISH_HELMET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_HELMET_TAN_FUR.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_HELMET_TAN_FUR.getDefaultStack(), "helmet", DispositionType.GOOD) .input(ResourceItemsME.FUR) .input(EquipmentItemsME.DALISH_HELMET) .input(ResourceItemsME.FUR) @@ -1573,7 +1573,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.DALISH_HELMET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_MAIL_HAUBERK.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_MAIL_HAUBERK.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.LEATHER) .input(ResourceItemsME.FABRIC) @@ -1586,7 +1586,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.MAIL_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_MAIL_COAT.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_MAIL_COAT.getDefaultStack(), "leggings", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .input(EquipmentItemsME.MAIL_SKIRT) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -1599,7 +1599,7 @@ public void generate() { .offerTo(exporter); //T4 - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_BURGONET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_BURGONET.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelHelmetPlate.getItem()), steelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -1609,7 +1609,7 @@ public void generate() { conditionsFromItem(steelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_SCALE_HAUBERK.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_SCALE_HAUBERK.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelScaleMail.getItem()), steelScaleMail.getComponentChanges())) @@ -1623,7 +1623,7 @@ public void generate() { .offerTo(exporter); //T4 HEYDAY - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_HEYDAY_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_HEYDAY_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .input(EquipmentItemsME.DALISH_HELMET) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -1633,7 +1633,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.DALISH_HELMET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_HEYDAY_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_HEYDAY_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.LEATHER) .input(ResourceItemsME.FABRIC) @@ -1646,7 +1646,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.DALISH_SCALE_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_HEYDAY_MAIL_COAT.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_HEYDAY_MAIL_COAT.getDefaultStack(), "leggings", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(EquipmentItemsME.DALISH_MAIL_COAT) .input(ResourceItemsME.FABRIC) @@ -1658,7 +1658,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.DALISH_MAIL_COAT)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_HEYDAY_BOOTS.getDefaultStack(), "boots", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_HEYDAY_BOOTS.getDefaultStack(), "boots", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.LEATHER) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -1668,7 +1668,7 @@ public void generate() { .offerTo(exporter); //T5 BARDING - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BARDING_SOLDIER_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BARDING_SOLDIER_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelHelmetPlate.getItem()), steelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -1678,7 +1678,7 @@ public void generate() { conditionsFromItem(steelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BARDING_SOLDIER_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BARDING_SOLDIER_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelChainmail.getItem()), steelChainmail.getComponentChanges())) @@ -1691,7 +1691,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.DALISH_SCALE_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BARDING_MAIL_SKIRT.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BARDING_MAIL_SKIRT.getDefaultStack(), "leggings", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .input(EquipmentItemsME.DALISH_MAIL_COAT) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -1703,7 +1703,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.DALISH_MAIL_COAT)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BARDING_PLATED_BOOTS.getDefaultStack(), "boots", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BARDING_PLATED_BOOTS.getDefaultStack(), "boots", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -1713,7 +1713,7 @@ public void generate() { .offerTo(exporter); //T5 BARDING SERGEANT - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BARDING_SERGEANT_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BARDING_SERGEANT_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .input(Items.FEATHER) .input(EquipmentItemsME.BARDING_SOLDIER_HELMET) .input(Items.FEATHER) @@ -1723,7 +1723,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.BARDING_SOLDIER_HELMET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BARDING_SERGEANT_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BARDING_SERGEANT_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) .input(ResourceItemsME.FABRIC) @@ -1737,7 +1737,7 @@ public void generate() { .offerTo(exporter); //CAPES - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BARDING_SURCOAT.getDefaultStack(), "backAttachment", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BARDING_SURCOAT.getDefaultStack(), "backAttachment", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(Items.STRING) .input(ResourceItemsME.FABRIC) @@ -1751,7 +1751,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BARDING_SERGEANT_CAPE.getDefaultStack(), "backAttachment", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BARDING_SERGEANT_CAPE.getDefaultStack(), "backAttachment", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(Items.STRING) .input(ResourceItemsME.FABRIC) @@ -1765,7 +1765,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_HEYDAY_CLOAK.getDefaultStack(), "backAttachment", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_HEYDAY_CLOAK.getDefaultStack(), "backAttachment", DispositionType.GOOD) .input(ResourceItemsME.BRONZE_NUGGET) .input(Items.STRING) .input(ResourceItemsME.BRONZE_NUGGET) @@ -1791,7 +1791,7 @@ public void generate() { //region GENERIC //T1 - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ELVEN_ARMING_COAT.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ELVEN_ARMING_COAT.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) @@ -1804,7 +1804,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ELVEN_ARMING_SKIRT.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ELVEN_ARMING_SKIRT.getDefaultStack(), "leggings", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) @@ -1816,7 +1816,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ELVEN_OPEN_ARMING_SKIRT.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ELVEN_OPEN_ARMING_SKIRT.getDefaultStack(), "leggings", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) @@ -1829,7 +1829,7 @@ public void generate() { .offerTo(exporter); //T2 - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ELVEN_BOOTS.getDefaultStack(), "boots", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ELVEN_BOOTS.getDefaultStack(), "boots", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -1839,7 +1839,7 @@ public void generate() { .offerTo(exporter); //T3 - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ELVEN_MAIL_COIF.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ELVEN_MAIL_COIF.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -1849,7 +1849,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ELVEN_MAIL_HAUBERK.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ELVEN_MAIL_HAUBERK.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -1862,7 +1862,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ELVEN_MAIL_SKIRT.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ELVEN_MAIL_SKIRT.getDefaultStack(), "leggings", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -1878,7 +1878,7 @@ public void generate() { //region LOTHLORIEN //T1 - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_DIADEM.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_DIADEM.getDefaultStack(), "helmet", DispositionType.GOOD) .input(ResourceItemsME.BRONZE_NUGGET) .componentInput(new ComponentsIngredient(Ingredient.ofItems(bronzeArmorPlate.getItem()), bronzeArmorPlate.getComponentChanges())) .input(ResourceItemsME.BRONZE_NUGGET) @@ -1887,7 +1887,7 @@ public void generate() { .offerTo(exporter); //T2 - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_LEATHER_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_LEATHER_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -1897,7 +1897,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_ARMING_COAT.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_ARMING_COAT.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.LEATHER) .input(ResourceItemsME.FABRIC) @@ -1910,7 +1910,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.ELVEN_ARMING_COAT)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_ARMING_SKIRT.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_ARMING_SKIRT.getDefaultStack(), "leggings", DispositionType.GOOD) .input(Items.LEATHER) .input(EquipmentItemsME.ELVEN_ARMING_SKIRT) .input(Items.LEATHER) @@ -1923,7 +1923,7 @@ public void generate() { .offerTo(exporter); //T3 - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_MAIL_COIF_DIADEM.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_MAIL_COIF_DIADEM.getDefaultStack(), "helmet", DispositionType.GOOD) .input(EquipmentItemsME.ELVEN_MAIL_COIF) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .input(EquipmentItemsME.LORIEN_DIADEM) @@ -1933,7 +1933,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.ELVEN_MAIL_COIF)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_SHORT_MAIL_COIF_DIADEM.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_SHORT_MAIL_COIF_DIADEM.getDefaultStack(), "helmet", DispositionType.GOOD) .input(EquipmentItemsME.ELVEN_MAIL_COIF) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .input(EquipmentItemsME.LORIEN_DIADEM) @@ -1943,7 +1943,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.ELVEN_MAIL_COIF)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_MAIL_HAUBERK.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_MAIL_HAUBERK.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -1956,7 +1956,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.ELVEN_MAIL_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_MARCHWARDEN_MAIL_HAUBERK.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_MARCHWARDEN_MAIL_HAUBERK.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) @@ -1970,7 +1970,7 @@ public void generate() { .offerTo(exporter); //T4 - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_SOLDIER_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_SOLDIER_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(edhelSteelArmorPlate.getItem()), edhelSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(edhelSteelHelmetPlate.getItem()), edhelSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(edhelSteelArmorPlate.getItem()), edhelSteelArmorPlate.getComponentChanges())) @@ -1980,7 +1980,7 @@ public void generate() { conditionsFromItem(edhelSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_SOLDIER_MAIL_HAUBERK.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_SOLDIER_MAIL_HAUBERK.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(edhelSteelArmorPlate.getItem()), edhelSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(edhelSteelArmorPlate.getItem()), edhelSteelArmorPlate.getComponentChanges())) .input(ResourceItemsME.FABRIC) @@ -1993,7 +1993,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.LORIEN_MAIL_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_SOLDIER_SCALE_HAUBERK.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_SOLDIER_SCALE_HAUBERK.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.LEATHER) .componentInput(new ComponentsIngredient(Ingredient.ofItems(edhelSteelScaleMail.getItem()), edhelSteelScaleMail.getComponentChanges())) @@ -2006,7 +2006,7 @@ public void generate() { conditionsFromItem(edhelSteelScaleMail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_SCALE_COAT.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_SCALE_COAT.getDefaultStack(), "leggings", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(edhelSteelScaleMail.getItem()), edhelSteelScaleMail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(edhelSteelScaleMail.getItem()), edhelSteelScaleMail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(edhelSteelScaleMail.getItem()), edhelSteelScaleMail.getComponentChanges())) @@ -2019,7 +2019,7 @@ public void generate() { .offerTo(exporter); //T5 GALADHRIM - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GALADHRIM_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GALADHRIM_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(edhelSteelArmorPlate.getItem()), edhelSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(edhelSteelHelmetPlate.getItem()), edhelSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(edhelSteelArmorPlate.getItem()), edhelSteelArmorPlate.getComponentChanges())) @@ -2029,7 +2029,7 @@ public void generate() { conditionsFromItem(edhelSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GALADHRIM_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GALADHRIM_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(edhelSteelArmorPlate.getItem()), edhelSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(edhelSteelArmorPlate.getItem()), edhelSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(edhelSteelChainmail.getItem()), edhelSteelChainmail.getComponentChanges())) @@ -2042,7 +2042,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.LORIEN_SOLDIER_SCALE_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GALADHRIM_LEGGINGS.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GALADHRIM_LEGGINGS.getDefaultStack(), "leggings", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(edhelSteelArmorPlate.getItem()), edhelSteelArmorPlate.getComponentChanges())) .input(EquipmentItemsME.LORIEN_SCALE_COAT) .componentInput(new ComponentsIngredient(Ingredient.ofItems(edhelSteelArmorPlate.getItem()), edhelSteelArmorPlate.getComponentChanges())) @@ -2054,7 +2054,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.LORIEN_SCALE_COAT)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GALADHRIM_BOOTS.getDefaultStack(), "boots", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GALADHRIM_BOOTS.getDefaultStack(), "boots", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(edhelSteelArmorPlate.getItem()), edhelSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(edhelSteelArmorPlate.getItem()), edhelSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(edhelSteelArmorPlate.getItem()), edhelSteelArmorPlate.getComponentChanges())) @@ -2064,7 +2064,7 @@ public void generate() { .offerTo(exporter); //T5 GALADHRIM LORD - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GALADHRIM_LORD_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GALADHRIM_LORD_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) .input(EquipmentItemsME.GALADHRIM_HELMET) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) @@ -2074,7 +2074,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.GALADHRIM_HELMET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GALADHRIM_LORD_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GALADHRIM_LORD_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) .input(ResourceItemsME.FABRIC) @@ -2087,7 +2087,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.GALADHRIM_CHESTPLATE)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GALADHRIM_LORD_LEGGINGS.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GALADHRIM_LORD_LEGGINGS.getDefaultStack(), "leggings", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(EquipmentItemsME.GALADHRIM_LEGGINGS) .input(ResourceItemsME.FABRIC) @@ -2099,7 +2099,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.GALADHRIM_LEGGINGS)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GALADHRIM_LORD_BOOTS.getDefaultStack(), "boots", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GALADHRIM_LORD_BOOTS.getDefaultStack(), "boots", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(edhelSteelArmorPlate.getItem()), edhelSteelArmorPlate.getComponentChanges())) @@ -2109,7 +2109,7 @@ public void generate() { .offerTo(exporter); //HOODS - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_MARCHWARDEN_HOOD.getDefaultStack(), "helmetAttachment", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_MARCHWARDEN_HOOD.getDefaultStack(), "helmetAttachment", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) @@ -2120,7 +2120,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GALADHRIM_HOOD.getDefaultStack(), "helmetAttachment", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GALADHRIM_HOOD.getDefaultStack(), "helmetAttachment", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) @@ -2132,7 +2132,7 @@ public void generate() { .offerTo(exporter); //CAPES - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_MARCHWARDEN_CAPE.getDefaultStack(), "backAttachment", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_MARCHWARDEN_CAPE.getDefaultStack(), "backAttachment", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.BRONZE_NUGGET) .input(ResourceItemsME.FABRIC) @@ -2146,7 +2146,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GALADHRIM_CAPE.getDefaultStack(), "backAttachment", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GALADHRIM_CAPE.getDefaultStack(), "backAttachment", DispositionType.GOOD) .input(Items.STRING) .input(ResourceItemsME.FABRIC) .input(Items.STRING) @@ -2160,7 +2160,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GALADHRIM_LORD_SURCOAT.getDefaultStack(), "backAttachment", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GALADHRIM_LORD_SURCOAT.getDefaultStack(), "backAttachment", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(Items.WHITE_DYE) .input(ResourceItemsME.FABRIC) @@ -2180,7 +2180,7 @@ public void generate() { //region DWARVES //region GENERIC - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DWARVEN_MINER_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DWARVEN_MINER_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .input(Items.CANDLE) .input(Items.LEATHER) .input(Items.CANDLE) @@ -2190,7 +2190,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DWARVEN_GAMBESON.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DWARVEN_GAMBESON.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(Items.LEATHER) @@ -2203,7 +2203,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DWARVEN_MAIL_COIF.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DWARVEN_MAIL_COIF.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -2213,7 +2213,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DWARVEN_MAIL_HAUBERK.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DWARVEN_MAIL_HAUBERK.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -2226,14 +2226,14 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DWARVEN_MINER_GAMBESON.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DWARVEN_MINER_GAMBESON.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(EquipmentItemsME.DWARVEN_MAIL_HAUBERK) .input(EquipmentItemsME.DWARVEN_GAMBESON) .criterion(hasItem(EquipmentItemsME.DWARVEN_MAIL_HAUBERK), conditionsFromItem(EquipmentItemsME.DWARVEN_MAIL_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DWARVEN_MAIL_COAT.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DWARVEN_MAIL_COAT.getDefaultStack(), "leggings", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -2245,7 +2245,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DWARVEN_MAIL_CHAUSSES.getDefaultStack(), "boots", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DWARVEN_MAIL_CHAUSSES.getDefaultStack(), "boots", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -2254,7 +2254,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DWARVEN_BOOTS.getDefaultStack(), "boots", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DWARVEN_BOOTS.getDefaultStack(), "boots", DispositionType.GOOD) .input(Items.IRON_INGOT) .input(Items.IRON_INGOT) .input(Items.LEATHER) @@ -2263,7 +2263,7 @@ public void generate() { conditionsFromItem(Items.IRON_INGOT)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DWARVEN_SCALE_HAUBERK.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DWARVEN_SCALE_HAUBERK.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelScaleMail.getItem()), khazadSteelScaleMail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelScaleMail.getItem()), khazadSteelScaleMail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelScaleMail.getItem()), khazadSteelScaleMail.getComponentChanges())) @@ -2276,7 +2276,7 @@ public void generate() { conditionsFromItem(khazadSteelScaleMail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DWARVEN_SCALE_COAT.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DWARVEN_SCALE_COAT.getDefaultStack(), "leggings", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelScaleMail.getItem()), khazadSteelScaleMail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelScaleMail.getItem()), khazadSteelScaleMail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelScaleMail.getItem()), khazadSteelScaleMail.getComponentChanges())) @@ -2288,7 +2288,7 @@ public void generate() { conditionsFromItem(khazadSteelScaleMail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DWARVEN_REINFORCED_BOOTS.getDefaultStack(), "boots", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DWARVEN_REINFORCED_BOOTS.getDefaultStack(), "boots", DispositionType.GOOD) .input(ResourceItemsME.KHAZAD_STEEL_INGOT) .input(ResourceItemsME.KHAZAD_STEEL_INGOT) .input(Items.LEATHER) @@ -2299,7 +2299,7 @@ public void generate() { //endregion //region EREBOR - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LONGBEARD_SEGMENTED_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LONGBEARD_SEGMENTED_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(bronzeArmorPlate.getItem()), bronzeArmorPlate.getComponentChanges())) .input(Items.LEATHER) .componentInput(new ComponentsIngredient(Ingredient.ofItems(bronzeArmorPlate.getItem()), bronzeArmorPlate.getComponentChanges())) @@ -2309,7 +2309,7 @@ public void generate() { conditionsFromItem(bronzeArmorPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LONGBEARD_LEATHER_HAUBERK.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LONGBEARD_LEATHER_HAUBERK.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -2322,7 +2322,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LONGBEARD_WANDERER_COAT.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LONGBEARD_WANDERER_COAT.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -2335,7 +2335,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LONGBEARD_LEATHER_LEGGINGS.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LONGBEARD_LEATHER_LEGGINGS.getDefaultStack(), "leggings", DispositionType.GOOD) .input(Items.LEATHER) .input(ResourceItemsME.BRONZE_NUGGET) .input(Items.LEATHER) @@ -2347,7 +2347,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LONGBEARD_PARTISAN_OUTFIT.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LONGBEARD_PARTISAN_OUTFIT.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) @@ -2360,7 +2360,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.DWARVEN_MAIL_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LONGBEARD_REINFORCED_LEATHER_HAUBERK.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LONGBEARD_REINFORCED_LEATHER_HAUBERK.getDefaultStack(), "chestplate", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -2373,7 +2373,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.DWARVEN_MAIL_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_LEATHER_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_LEATHER_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .input(Items.IRON_INGOT) .input(Items.LEATHER) .input(Items.IRON_INGOT) @@ -2383,7 +2383,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_BRACED_LEATHER_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_BRACED_LEATHER_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .input(Items.IRON_INGOT) .input(Items.LEATHER) .input(Items.IRON_INGOT) @@ -2393,7 +2393,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_NASAL_LEATHER_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_NASAL_LEATHER_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .input(Items.IRON_INGOT) .input(Items.LEATHER) .input(Items.IRON_INGOT) @@ -2403,7 +2403,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_LEATHER_LEGGINGS.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_LEATHER_LEGGINGS.getDefaultStack(), "leggings", DispositionType.GOOD) .input(Items.LEATHER) .input(ResourceItemsME.BRONZE_NUGGET) .input(Items.LEATHER) @@ -2415,7 +2415,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_MAIL_COIF.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_MAIL_COIF.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -2425,7 +2425,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_GILDED_MAIL_COIF.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_GILDED_MAIL_COIF.getDefaultStack(), "helmet", DispositionType.GOOD) .input(ResourceItemsME.BRONZE_NUGGET) .input(EquipmentItemsME.EREBOR_MAIL_COIF) .input(ResourceItemsME.BRONZE_NUGGET) @@ -2435,7 +2435,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.EREBOR_MAIL_COIF)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironHelmetPlate.getItem()), ironHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) @@ -2445,7 +2445,7 @@ public void generate() { conditionsFromItem(ironHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_MAIL_HAUBERK.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_MAIL_HAUBERK.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -2458,7 +2458,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_PADDED_MAIL_HAUBERK.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_PADDED_MAIL_HAUBERK.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .input(Items.LEATHER) @@ -2471,7 +2471,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.EREBOR_MAIL_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_MAIL_COAT.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_MAIL_COAT.getDefaultStack(), "leggings", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -2483,7 +2483,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_MAIL_LEGGINGS.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_MAIL_LEGGINGS.getDefaultStack(), "leggings", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -2495,7 +2495,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_MAIL_CHAUSSES.getDefaultStack(), "boots", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_MAIL_CHAUSSES.getDefaultStack(), "boots", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -2504,7 +2504,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_BOOTS.getDefaultStack(), "boots", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_BOOTS.getDefaultStack(), "boots", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.IRON_INGOT) @@ -2514,7 +2514,7 @@ public void generate() { .offerTo(exporter); //t4 - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelHelmetPlate.getItem()), khazadSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) @@ -2524,14 +2524,14 @@ public void generate() { conditionsFromItem(khazadSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_GILDED_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_GILDED_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .input(EquipmentItemsME.EREBOR_GILDED_MAIL_COIF) .input(EquipmentItemsME.RAVENHILL_HELMET) .criterion(hasItem(EquipmentItemsME.RAVENHILL_HELMET), conditionsFromItem(EquipmentItemsME.RAVENHILL_HELMET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_SCALE_HAUBERK.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_SCALE_HAUBERK.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelScaleMail.getItem()), khazadSteelScaleMail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelScaleMail.getItem()), khazadSteelScaleMail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelScaleMail.getItem()), khazadSteelScaleMail.getComponentChanges())) @@ -2544,7 +2544,7 @@ public void generate() { conditionsFromItem(khazadSteelScaleMail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_LONG_COAT.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_LONG_COAT.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelChainmail.getItem()), khazadSteelChainmail.getComponentChanges())) @@ -2557,7 +2557,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.EREBOR_MAIL_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_BRAWLER_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_BRAWLER_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) .input(ResourceItemsME.FABRIC) @@ -2570,7 +2570,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.EREBOR_MAIL_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_REINFORCED_LEATHER_HAUBERK.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_REINFORCED_LEATHER_HAUBERK.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) .input(Items.LEATHER) @@ -2583,7 +2583,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.EREBOR_MAIL_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_REINFORCED_COAT.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_REINFORCED_COAT.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) .input(ResourceItemsME.FABRIC) @@ -2596,7 +2596,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.EREBOR_MAIL_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_REINFORCED_MAIL_HAUBERK.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_REINFORCED_MAIL_HAUBERK.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelChainmail.getItem()), khazadSteelChainmail.getComponentChanges())) @@ -2609,7 +2609,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.EREBOR_MAIL_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_SCALE_COAT.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_SCALE_COAT.getDefaultStack(), "leggings", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelScaleMail.getItem()), khazadSteelScaleMail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelScaleMail.getItem()), khazadSteelScaleMail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelScaleMail.getItem()), khazadSteelScaleMail.getComponentChanges())) @@ -2621,7 +2621,7 @@ public void generate() { conditionsFromItem(khazadSteelScaleMail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_SCALE_LEGGINGS.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_SCALE_LEGGINGS.getDefaultStack(), "leggings", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelScaleMail.getItem()), khazadSteelScaleMail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelScaleMail.getItem()), khazadSteelScaleMail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelScaleMail.getItem()), khazadSteelScaleMail.getComponentChanges())) @@ -2633,7 +2633,7 @@ public void generate() { conditionsFromItem(khazadSteelScaleMail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_BOOTS.getDefaultStack(), "boots", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_BOOTS.getDefaultStack(), "boots", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) .input(Items.LEATHER) @@ -2642,7 +2642,7 @@ public void generate() { conditionsFromItem(khazadSteelArmorPlate.getItem())) .offerTo(exporter); //t5 - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_PLATE_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_PLATE_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelHelmetPlate.getItem()), khazadSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) @@ -2652,7 +2652,7 @@ public void generate() { conditionsFromItem(khazadSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_PLATE_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_PLATE_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelScaleMail.getItem()), khazadSteelScaleMail.getComponentChanges())) @@ -2665,7 +2665,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.EREBOR_SCALE_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_PLATE_LEGGINGS.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_PLATE_LEGGINGS.getDefaultStack(), "leggings", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) .input(EquipmentItemsME.EREBOR_SCALE_LEGGINGS) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) @@ -2677,7 +2677,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.EREBOR_SCALE_LEGGINGS)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_PLATE_BOOTS.getDefaultStack(), "boots", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_PLATE_BOOTS.getDefaultStack(), "boots", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) @@ -2686,7 +2686,7 @@ public void generate() { conditionsFromItem(khazadSteelArmorPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_GUARD_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_GUARD_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) .input(EquipmentItemsME.EREBOR_PLATE_HELMET) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) @@ -2694,7 +2694,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.EREBOR_PLATE_HELMET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_GATEWARDEN_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_GATEWARDEN_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(bronzeArmorPlate.getItem()), bronzeArmorPlate.getComponentChanges())) .input(EquipmentItemsME.EREBOR_PLATE_HELMET) .componentInput(new ComponentsIngredient(Ingredient.ofItems(bronzeArmorPlate.getItem()), bronzeArmorPlate.getComponentChanges())) @@ -2704,7 +2704,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.EREBOR_PLATE_HELMET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_GATEWARDEN_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_GATEWARDEN_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(bronzeArmorPlate.getItem()), bronzeArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(bronzeArmorPlate.getItem()), bronzeArmorPlate.getComponentChanges())) .input(ResourceItemsME.FABRIC) @@ -2717,7 +2717,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.EREBOR_PLATE_CHESTPLATE)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_GATEWARDEN_LEGGINGS.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_GATEWARDEN_LEGGINGS.getDefaultStack(), "leggings", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(bronzeArmorPlate.getItem()), bronzeArmorPlate.getComponentChanges())) .input(EquipmentItemsME.EREBOR_PLATE_LEGGINGS) .componentInput(new ComponentsIngredient(Ingredient.ofItems(bronzeArmorPlate.getItem()), bronzeArmorPlate.getComponentChanges())) @@ -2729,7 +2729,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.EREBOR_PLATE_LEGGINGS)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_GATEWARDEN_BOOTS.getDefaultStack(), "boots", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_GATEWARDEN_BOOTS.getDefaultStack(), "boots", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) @@ -2738,7 +2738,7 @@ public void generate() { conditionsFromItem(khazadSteelArmorPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_WATCHWARDEN_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_WATCHWARDEN_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(bronzeArmorPlate.getItem()), bronzeArmorPlate.getComponentChanges())) .input(EquipmentItemsME.EREBOR_PLATE_HELMET) .componentInput(new ComponentsIngredient(Ingredient.ofItems(bronzeArmorPlate.getItem()), bronzeArmorPlate.getComponentChanges())) @@ -2748,7 +2748,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.EREBOR_PLATE_HELMET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_WATCHWARDEN_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_WATCHWARDEN_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(bronzeArmorPlate.getItem()), bronzeArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(bronzeArmorPlate.getItem()), bronzeArmorPlate.getComponentChanges())) .input(ResourceItemsME.FABRIC) @@ -2761,7 +2761,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.EREBOR_PLATE_CHESTPLATE)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_WATCHWARDEN_LEGGINGS.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_WATCHWARDEN_LEGGINGS.getDefaultStack(), "leggings", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(bronzeArmorPlate.getItem()), bronzeArmorPlate.getComponentChanges())) .input(EquipmentItemsME.EREBOR_PLATE_LEGGINGS) .componentInput(new ComponentsIngredient(Ingredient.ofItems(bronzeArmorPlate.getItem()), bronzeArmorPlate.getComponentChanges())) @@ -2773,7 +2773,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.EREBOR_PLATE_LEGGINGS)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_WATCHWARDEN_BOOTS.getDefaultStack(), "boots", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_WATCHWARDEN_BOOTS.getDefaultStack(), "boots", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) @@ -2782,7 +2782,7 @@ public void generate() { conditionsFromItem(khazadSteelArmorPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_CAPTAIN_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_CAPTAIN_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .input(Items.GOAT_HORN) .input(EquipmentItemsME.EREBOR_GUARD_HELMET) .input(Items.GOAT_HORN) @@ -2790,7 +2790,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.EREBOR_GUARD_HELMET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_SENTINEL_HELMET.getDefaultStack(), "helmet", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_SENTINEL_HELMET.getDefaultStack(), "helmet", DispositionType.GOOD) .input(Items.FEATHER) .input(EquipmentItemsME.RAVENHILL_WATCHWARDEN_HELMET) .input(Items.FEATHER) @@ -2800,7 +2800,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.RAVENHILL_WATCHWARDEN_HELMET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_SENTINEL_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_SENTINEL_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) .input(ResourceItemsME.FABRIC) @@ -2813,7 +2813,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.RAVENHILL_WATCHWARDEN_CHESTPLATE)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_SENTINEL_LEGGINGS.getDefaultStack(), "leggings", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_SENTINEL_LEGGINGS.getDefaultStack(), "leggings", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) .input(EquipmentItemsME.RAVENHILL_WATCHWARDEN_LEGGINGS) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) @@ -2825,7 +2825,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.RAVENHILL_WATCHWARDEN_LEGGINGS)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_SENTINEL_BOOTS.getDefaultStack(), "boots", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_SENTINEL_BOOTS.getDefaultStack(), "boots", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(goldArmorPlate.getItem()), goldArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) @@ -2835,7 +2835,7 @@ public void generate() { .offerTo(exporter); //capes - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_CAPE.getDefaultStack(), "backAttachment", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.EREBOR_CAPE.getDefaultStack(), "backAttachment", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(Items.STRING) .input(ResourceItemsME.FABRIC) @@ -2849,7 +2849,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_SENTINEL_CAPE.getDefaultStack(), "backAttachment", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RAVENHILL_SENTINEL_CAPE.getDefaultStack(), "backAttachment", DispositionType.GOOD) .input(ResourceItemsME.FABRIC) .input(Items.STRING) .input(ResourceItemsME.FABRIC) @@ -2870,7 +2870,7 @@ public void generate() { //region ORCS //region GENERIC - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_LEATHER_STRAP.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_LEATHER_STRAP.getDefaultStack(), "chestplate", DispositionType.EVIL) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -2879,7 +2879,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_SANDALS.getDefaultStack(), "boots", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_SANDALS.getDefaultStack(), "boots", DispositionType.EVIL) .input(Items.STICK) .input(Items.STICK) .input(ResourceItemsME.FABRIC) @@ -2888,7 +2888,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_ORCISH_MAIL_COIF.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_ORCISH_MAIL_COIF.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -2898,7 +2898,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.EVIL) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -2911,7 +2911,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST.getDefaultStack(), "chestplate", DispositionType.EVIL) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -2924,7 +2924,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_ORCISH_MAIL_HAUBERK.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_ORCISH_MAIL_HAUBERK.getDefaultStack(), "chestplate", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -2937,7 +2937,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_ORCISH_MAIL_SHIRT.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_ORCISH_MAIL_SHIRT.getDefaultStack(), "chestplate", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -2950,7 +2950,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_LEATHER_SKIRT.getDefaultStack(), "leggings", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_LEATHER_SKIRT.getDefaultStack(), "leggings", DispositionType.EVIL) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -2962,7 +2962,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT.getDefaultStack(), "leggings", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT.getDefaultStack(), "leggings", DispositionType.EVIL) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -2974,7 +2974,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_LEG_BRACER.getDefaultStack(), "leggings", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_LEG_BRACER.getDefaultStack(), "leggings", DispositionType.EVIL) .input(Items.LEATHER) .input(Items.IRON_NUGGET) .input(Items.LEATHER) @@ -2986,7 +2986,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_ORCISH_MAIL_COAT.getDefaultStack(), "leggings", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_ORCISH_MAIL_COAT.getDefaultStack(), "leggings", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -2998,7 +2998,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_ORCISH_REINFORCED_LEATHER_SKIRT.getDefaultStack(), "leggings", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_ORCISH_REINFORCED_LEATHER_SKIRT.getDefaultStack(), "leggings", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -3010,7 +3010,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_ORCISH_REINFORCED_STRIP_LEATHER_SKIRT.getDefaultStack(), "leggings", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_ORCISH_REINFORCED_STRIP_LEATHER_SKIRT.getDefaultStack(), "leggings", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -3022,7 +3022,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_BLACK_FUR_BOOTS.getDefaultStack(), "boots", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_BLACK_FUR_BOOTS.getDefaultStack(), "boots", DispositionType.EVIL) .input(ResourceItemsME.FUR) .input(ResourceItemsME.FUR) .input(Items.LEATHER) @@ -3031,7 +3031,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FUR)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_BROWN_FUR_BOOTS.getDefaultStack(), "boots", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_BROWN_FUR_BOOTS.getDefaultStack(), "boots", DispositionType.EVIL) .input(ResourceItemsME.FUR) .input(ResourceItemsME.FUR) .input(Items.LEATHER) @@ -3040,7 +3040,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FUR)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_GRAY_FUR_BOOTS.getDefaultStack(), "boots", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_GRAY_FUR_BOOTS.getDefaultStack(), "boots", DispositionType.EVIL) .input(ResourceItemsME.FUR) .input(ResourceItemsME.FUR) .input(Items.LEATHER) @@ -3049,7 +3049,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FUR)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_TAN_FUR_BOOTS.getDefaultStack(), "boots", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_TAN_FUR_BOOTS.getDefaultStack(), "boots", DispositionType.EVIL) .input(ResourceItemsME.FUR) .input(ResourceItemsME.FUR) .input(Items.LEATHER) @@ -3058,7 +3058,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FUR)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_WHITE_FUR_BOOTS.getDefaultStack(), "boots", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_WHITE_FUR_BOOTS.getDefaultStack(), "boots", DispositionType.EVIL) .input(ResourceItemsME.FUR) .input(ResourceItemsME.FUR) .input(Items.LEATHER) @@ -3067,7 +3067,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FUR)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_BRACED_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_BRACED_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironHelmetPlate.getItem()), ironHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) @@ -3077,7 +3077,7 @@ public void generate() { conditionsFromItem(ironHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironHelmetPlate.getItem()), ironHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) @@ -3087,7 +3087,7 @@ public void generate() { conditionsFromItem(ironHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_MAIL_COIF.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_MAIL_COIF.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -3097,7 +3097,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_MAIL_HAUBERK.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_MAIL_HAUBERK.getDefaultStack(), "chestplate", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -3110,7 +3110,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_MAIL_SHIRT.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_MAIL_SHIRT.getDefaultStack(), "chestplate", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -3123,7 +3123,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_MAIL_COAT.getDefaultStack(), "leggings", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_MAIL_COAT.getDefaultStack(), "leggings", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -3135,7 +3135,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_REINFORCED_LEATHER_SKIRT.getDefaultStack(), "leggings", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_REINFORCED_LEATHER_SKIRT.getDefaultStack(), "leggings", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -3147,7 +3147,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_REINFORCED_STRIP_LEATHER_SKIRT.getDefaultStack(), "leggings", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_REINFORCED_STRIP_LEATHER_SKIRT.getDefaultStack(), "leggings", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -3159,7 +3159,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_SALLET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_SALLET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelHelmetPlate.getItem()), burzumSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -3169,7 +3169,7 @@ public void generate() { conditionsFromItem(burzumSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_BELLY_PLATE_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_BELLY_PLATE_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.EVIL) .input(Items.LEATHER) .input(Items.LEATHER) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelScaleMail.getItem()), burzumSteelScaleMail.getComponentChanges())) @@ -3182,7 +3182,7 @@ public void generate() { conditionsFromItem(burzumSteelScaleMail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_SCALE_VEST.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_SCALE_VEST.getDefaultStack(), "chestplate", DispositionType.EVIL) .input(Items.LEATHER) .input(Items.LEATHER) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelScaleMail.getItem()), burzumSteelScaleMail.getComponentChanges())) @@ -3195,7 +3195,7 @@ public void generate() { conditionsFromItem(burzumSteelScaleMail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_REINFORCED_LEG_BRACER.getDefaultStack(), "leggings", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_REINFORCED_LEG_BRACER.getDefaultStack(), "leggings", DispositionType.EVIL) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -3207,7 +3207,7 @@ public void generate() { conditionsFromItem(burzumSteelArmorPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_BRACED_SANDALS.getDefaultStack(), "boots", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_BRACED_SANDALS.getDefaultStack(), "boots", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())).input(Items.LEATHER) .input(Items.LEATHER) @@ -3217,7 +3217,7 @@ public void generate() { conditionsFromItem(burzumSteelArmorPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_CAPE.getDefaultStack(), "backAttachment", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_CAPE.getDefaultStack(), "backAttachment", DispositionType.EVIL) .input(ResourceItemsME.FABRIC) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of(MiddleEarth.MOD_ID, "bones"))) .input(ResourceItemsME.FABRIC) @@ -3231,7 +3231,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_LONG_CAPE.getDefaultStack(), "backAttachment", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_LONG_CAPE.getDefaultStack(), "backAttachment", DispositionType.EVIL) .input(ResourceItemsME.FABRIC) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of(MiddleEarth.MOD_ID, "bones"))) .input(ResourceItemsME.FABRIC) @@ -3245,7 +3245,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_SHOULDERS.getDefaultStack(), "backAttachment", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_SHOULDERS.getDefaultStack(), "backAttachment", DispositionType.EVIL) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) @@ -3256,7 +3256,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FABRIC)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_BLACK_FUR_SURCOAT_WITH_BONE.getDefaultStack(), "backAttachment", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_BLACK_FUR_SURCOAT_WITH_BONE.getDefaultStack(), "backAttachment", DispositionType.EVIL) .input(ResourceItemsME.FUR) .input(ResourceItemsME.FUR) .input(ResourceItemsME.FUR) @@ -3270,7 +3270,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FUR)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_BROWN_FUR_SURCOAT_WITH_BONE.getDefaultStack(), "backAttachment", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_BROWN_FUR_SURCOAT_WITH_BONE.getDefaultStack(), "backAttachment", DispositionType.EVIL) .input(ResourceItemsME.FUR) .input(ResourceItemsME.FUR) .input(ResourceItemsME.FUR) @@ -3284,7 +3284,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FUR)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_GRAY_FUR_SURCOAT_WITH_BONE.getDefaultStack(), "backAttachment", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_GRAY_FUR_SURCOAT_WITH_BONE.getDefaultStack(), "backAttachment", DispositionType.EVIL) .input(ResourceItemsME.FUR) .input(ResourceItemsME.FUR) .input(ResourceItemsME.FUR) @@ -3298,7 +3298,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FUR)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_TAN_FUR_SURCOAT_WITH_BONE.getDefaultStack(), "backAttachment", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_TAN_FUR_SURCOAT_WITH_BONE.getDefaultStack(), "backAttachment", DispositionType.EVIL) .input(ResourceItemsME.FUR) .input(ResourceItemsME.FUR) .input(ResourceItemsME.FUR) @@ -3312,7 +3312,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.FUR)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_WHITE_FUR_SURCOAT_WITH_BONE.getDefaultStack(), "backAttachment", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORCISH_WHITE_FUR_SURCOAT_WITH_BONE.getDefaultStack(), "backAttachment", DispositionType.EVIL) .input(ResourceItemsME.FUR) .input(ResourceItemsME.FUR) .input(ResourceItemsME.FUR) @@ -3328,7 +3328,7 @@ public void generate() { //endregion //region MORDOR - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironHelmetPlate.getItem()), ironHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) @@ -3338,7 +3338,7 @@ public void generate() { conditionsFromItem(ironHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironHelmetPlate.getItem()), ironHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) @@ -3348,7 +3348,7 @@ public void generate() { conditionsFromItem(ironHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_KETTLE_HAT.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_KETTLE_HAT.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironHelmetPlate.getItem()), ironHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) @@ -3358,7 +3358,7 @@ public void generate() { conditionsFromItem(ironHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_KETTLE_HAT.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_KETTLE_HAT.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironHelmetPlate.getItem()), ironHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) @@ -3368,7 +3368,7 @@ public void generate() { conditionsFromItem(ironHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_NASAL_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_NASAL_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironHelmetPlate.getItem()), ironHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) @@ -3378,7 +3378,7 @@ public void generate() { conditionsFromItem(ironHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_NASAL_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_NASAL_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironHelmetPlate.getItem()), ironHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) @@ -3388,21 +3388,21 @@ public void generate() { conditionsFromItem(ironHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_KETTLE_HAT_WITH_COIF.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_KETTLE_HAT_WITH_COIF.getDefaultStack(), "helmet", DispositionType.EVIL) .input(EquipmentItemsME.ORCISH_MAIL_COIF) .input(EquipmentItemsME.MORDOR_KETTLE_HAT) .criterion(hasItem(EquipmentItemsME.ORCISH_MAIL_COIF), conditionsFromItem(EquipmentItemsME.ORCISH_MAIL_COIF)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_KETTLE_HAT_WITH_COIF.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_KETTLE_HAT_WITH_COIF.getDefaultStack(), "helmet", DispositionType.EVIL) .input(EquipmentItemsME.ORCISH_MAIL_COIF) .input(EquipmentItemsME.MORDOR_KETTLE_HAT) .criterion(hasItem(EquipmentItemsME.ORCISH_MAIL_COIF), conditionsFromItem(EquipmentItemsME.ORCISH_MAIL_COIF)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_LEATHER_CUIRASS.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_LEATHER_CUIRASS.getDefaultStack(), "chestplate", DispositionType.EVIL) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(Items.LEATHER) @@ -3415,7 +3415,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_PAINTED_LEATHER_CUIRASS.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_PAINTED_LEATHER_CUIRASS.getDefaultStack(), "chestplate", DispositionType.EVIL) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) .input(Items.RED_DYE) @@ -3428,7 +3428,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.MORDOR_LEATHER_CUIRASS)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_CREST_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_CREST_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelHelmetPlate.getItem()), burzumSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -3438,7 +3438,7 @@ public void generate() { conditionsFromItem(burzumSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_CREST_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_CREST_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelHelmetPlate.getItem()), burzumSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -3448,7 +3448,7 @@ public void generate() { conditionsFromItem(burzumSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_MANDIBLE_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_MANDIBLE_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelHelmetPlate.getItem()), burzumSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -3458,7 +3458,7 @@ public void generate() { conditionsFromItem(burzumSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_MANDIBLE_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_MANDIBLE_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelHelmetPlate.getItem()), burzumSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -3468,7 +3468,7 @@ public void generate() { conditionsFromItem(burzumSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_SALLET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_SALLET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelHelmetPlate.getItem()), burzumSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -3478,7 +3478,7 @@ public void generate() { conditionsFromItem(burzumSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_SALLET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_SALLET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelHelmetPlate.getItem()), burzumSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -3488,7 +3488,7 @@ public void generate() { conditionsFromItem(burzumSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_CUIRASS.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_CUIRASS.getDefaultStack(), "chestplate", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelChainmail.getItem()), burzumSteelChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelChainmail.getItem()), burzumSteelChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -3501,7 +3501,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.MORDOR_LEATHER_CUIRASS)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_CUIRASS.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_CUIRASS.getDefaultStack(), "chestplate", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelChainmail.getItem()), burzumSteelChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelChainmail.getItem()), burzumSteelChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -3514,7 +3514,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.MORDOR_LEATHER_CUIRASS)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_GORGET_HAUBERK.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_GORGET_HAUBERK.getDefaultStack(), "chestplate", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelChainmail.getItem()), burzumSteelChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelChainmail.getItem()), burzumSteelChainmail.getComponentChanges())) .input(Items.LEATHER) @@ -3527,7 +3527,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.ORCISH_MAIL_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_GORGET_HAUBERK.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_GORGET_HAUBERK.getDefaultStack(), "chestplate", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelChainmail.getItem()), burzumSteelChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelChainmail.getItem()), burzumSteelChainmail.getComponentChanges())) .input(Items.LEATHER) @@ -3540,7 +3540,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.ORCISH_MAIL_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_REINFORCED_COAT.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_REINFORCED_COAT.getDefaultStack(), "chestplate", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelChainmail.getItem()), burzumSteelChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelChainmail.getItem()), burzumSteelChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -3553,7 +3553,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.MORDOR_LEATHER_CUIRASS)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_REINFORCED_COAT.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_REINFORCED_COAT.getDefaultStack(), "chestplate", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelChainmail.getItem()), burzumSteelChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelChainmail.getItem()), burzumSteelChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -3566,7 +3566,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.MORDOR_LEATHER_CUIRASS)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelChainmail.getItem()), burzumSteelChainmail.getComponentChanges())) @@ -3579,7 +3579,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.ORCISH_MAIL_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelChainmail.getItem()), burzumSteelChainmail.getComponentChanges())) @@ -3592,7 +3592,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.ORCISH_MAIL_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_PLATE_BOOTS.getDefaultStack(), "boots", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_PLATE_BOOTS.getDefaultStack(), "boots", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .input(Items.LEATHER) @@ -3601,7 +3601,7 @@ public void generate() { conditionsFromItem(burzumSteelArmorPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_PLATE_BOOTS.getDefaultStack(), "boots", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_PLATE_BOOTS.getDefaultStack(), "boots", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .input(Items.LEATHER) @@ -3610,7 +3610,7 @@ public void generate() { conditionsFromItem(burzumSteelArmorPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_GREAT_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_GREAT_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelHelmetPlate.getItem()), burzumSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -3620,7 +3620,7 @@ public void generate() { conditionsFromItem(burzumSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_GREAT_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_GREAT_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelHelmetPlate.getItem()), burzumSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -3630,7 +3630,7 @@ public void generate() { conditionsFromItem(burzumSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_SNOUT_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_SNOUT_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelHelmetPlate.getItem()), burzumSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -3640,7 +3640,7 @@ public void generate() { conditionsFromItem(burzumSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_SNOUT_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.RUSTED_MORDOR_SNOUT_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelHelmetPlate.getItem()), burzumSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -3650,7 +3650,7 @@ public void generate() { conditionsFromItem(burzumSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_DEGRADED_GONDORIAN_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_DEGRADED_GONDORIAN_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelChainmail.getItem()), burzumSteelChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .input(Items.LEATHER) @@ -3663,7 +3663,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.GONDORIAN_PLATE_CHESTPLATE)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_PAINTED_CUIRASS.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_PAINTED_CUIRASS.getDefaultStack(), "chestplate", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelChainmail.getItem()), burzumSteelChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelChainmail.getItem()), burzumSteelChainmail.getComponentChanges())) .input(Items.RED_DYE) @@ -3676,7 +3676,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.MORDOR_CUIRASS)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_SCALE_COAT.getDefaultStack(), "leggings", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_SCALE_COAT.getDefaultStack(), "leggings", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelScaleMail.getItem()), burzumSteelScaleMail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelScaleMail.getItem()), burzumSteelScaleMail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelScaleMail.getItem()), burzumSteelScaleMail.getComponentChanges())) @@ -3689,7 +3689,7 @@ public void generate() { .offerTo(exporter); //T5 - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BLACK_URUK_PLATE_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BLACK_URUK_PLATE_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelHelmetPlate.getItem()), burzumSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -3699,7 +3699,7 @@ public void generate() { conditionsFromItem(burzumSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BLACK_URUK_PLATE_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BLACK_URUK_PLATE_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelChainmail.getItem()), burzumSteelChainmail.getComponentChanges())) @@ -3712,7 +3712,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.MORDOR_CHESTPLATE)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BLACK_URUK_PLATE_LEGGINGS.getDefaultStack(), "leggings", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BLACK_URUK_PLATE_LEGGINGS.getDefaultStack(), "leggings", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .input(EquipmentItemsME.ORCISH_MAIL_COAT) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -3724,7 +3724,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.ORCISH_MAIL_COAT)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BLACK_URUK_PLATE_BOOTS.getDefaultStack(), "boots", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BLACK_URUK_PLATE_BOOTS.getDefaultStack(), "boots", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -3733,7 +3733,7 @@ public void generate() { conditionsFromItem(burzumSteelArmorPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BLACK_URUK_FACE_PLATE_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BLACK_URUK_FACE_PLATE_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelHelmetPlate.getItem()), burzumSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -3743,7 +3743,7 @@ public void generate() { conditionsFromItem(burzumSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BLACK_URUK_COMMANDER_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BLACK_URUK_COMMANDER_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .input(Items.SKELETON_SKULL) .input(EquipmentItemsME.BLACK_URUK_PLATE_HELMET) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -3753,7 +3753,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.BLACK_URUK_PLATE_HELMET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BLACK_URUK_COMMANDER_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BLACK_URUK_COMMANDER_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .input(Items.RED_DYE) @@ -3766,7 +3766,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.BLACK_URUK_PLATE_CHESTPLATE)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_BLACK_NUMENOREAN_PLATE_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_BLACK_NUMENOREAN_PLATE_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelHelmetPlate.getItem()), steelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -3776,7 +3776,7 @@ public void generate() { conditionsFromItem(steelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_BLACK_NUMENOREAN_PLATE_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_BLACK_NUMENOREAN_PLATE_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -3789,7 +3789,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.MAIL_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_BLACK_NUMENOREAN_PLATE_LEGGINGS.getDefaultStack(), "leggings", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_BLACK_NUMENOREAN_PLATE_LEGGINGS.getDefaultStack(), "leggings", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .input(EquipmentItemsME.MAIL_SKIRT) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -3801,7 +3801,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.MAIL_SKIRT)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_BLACK_NUMENOREAN_PLATE_BOOTS.getDefaultStack(), "boots", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_BLACK_NUMENOREAN_PLATE_BOOTS.getDefaultStack(), "boots", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -3810,7 +3810,7 @@ public void generate() { conditionsFromItem(steelArmorPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_BLACK_NUMENOREAN_CAPE.getDefaultStack(), "backAttachment", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.MORDOR_BLACK_NUMENOREAN_CAPE.getDefaultStack(), "backAttachment", DispositionType.EVIL) .input(ResourceItemsME.STEEL_NUGGET) .input(Items.STRING) .input(ResourceItemsME.STEEL_NUGGET) @@ -3827,7 +3827,7 @@ public void generate() { //endregion //region ISENGARD - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_LEATHER_SCOUT_CAP.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_LEATHER_SCOUT_CAP.getDefaultStack(), "helmet", DispositionType.EVIL) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -3837,7 +3837,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_LEATHER_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_LEATHER_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.EVIL) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -3850,14 +3850,14 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_PAINTED_LEATHER_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_PAINTED_LEATHER_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.EVIL) .input(EquipmentItemsME.URUK_HAI_LEATHER_CHESTPLATE) .input(ResourceItemsME.ISENGARD_BANNER_PATTERN) .criterion(hasItem(EquipmentItemsME.URUK_HAI_LEATHER_CHESTPLATE), conditionsFromItem(EquipmentItemsME.URUK_HAI_LEATHER_CHESTPLATE)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_LEATHER_HAUBERK.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_LEATHER_HAUBERK.getDefaultStack(), "chestplate", DispositionType.EVIL) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -3870,7 +3870,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_BOOTS.getDefaultStack(), "boots", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_BOOTS.getDefaultStack(), "boots", DispositionType.EVIL) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -3879,7 +3879,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_LIGHT_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_LIGHT_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironHelmetPlate.getItem()), ironHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) @@ -3889,14 +3889,14 @@ public void generate() { conditionsFromItem(ironHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_PAINTED_LIGHT_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_PAINTED_LIGHT_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .input(EquipmentItemsME.URUK_HAI_LIGHT_HELMET) .input(ResourceItemsME.ISENGARD_BANNER_PATTERN) .criterion(hasItem(EquipmentItemsME.URUK_HAI_LIGHT_HELMET), conditionsFromItem(EquipmentItemsME.URUK_HAI_LIGHT_HELMET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_REINFORCED_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_REINFORCED_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironHelmetPlate.getItem()), ironHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) @@ -3906,14 +3906,14 @@ public void generate() { conditionsFromItem(ironHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_PAINTED_REINFORCED_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_PAINTED_REINFORCED_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .input(EquipmentItemsME.URUK_HAI_REINFORCED_HELMET) .input(ResourceItemsME.ISENGARD_BANNER_PATTERN) .criterion(hasItem(EquipmentItemsME.URUK_HAI_REINFORCED_HELMET), conditionsFromItem(EquipmentItemsME.URUK_HAI_REINFORCED_HELMET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_MAIL_HAUBERK.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_MAIL_HAUBERK.getDefaultStack(), "chestplate", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -3926,7 +3926,7 @@ public void generate() { conditionsFromItem(ironHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_MAIL_COAT.getDefaultStack(), "leggings", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_MAIL_COAT.getDefaultStack(), "leggings", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -3938,7 +3938,7 @@ public void generate() { conditionsFromItem(ironHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_MAIL_SKIRT.getDefaultStack(), "leggings", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_MAIL_SKIRT.getDefaultStack(), "leggings", DispositionType.EVIL) .input(Items.LEATHER) .input(EquipmentItemsME.URUK_HAI_MAIL_COAT) .input(Items.LEATHER) @@ -3951,7 +3951,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.URUK_HAI_MAIL_COAT)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_SOLDIER_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_SOLDIER_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelHelmetPlate.getItem()), burzumSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -3961,14 +3961,14 @@ public void generate() { conditionsFromItem(burzumSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_PAINTED_SOLDIER_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_PAINTED_SOLDIER_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .input(EquipmentItemsME.URUK_HAI_SOLDIER_HELMET) .input(ResourceItemsME.ISENGARD_BANNER_PATTERN) .criterion(hasItem(EquipmentItemsME.URUK_HAI_SOLDIER_HELMET), conditionsFromItem(EquipmentItemsME.URUK_HAI_SOLDIER_HELMET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_CUIRASS.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_CUIRASS.getDefaultStack(), "chestplate", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .input(Items.LEATHER) @@ -3981,7 +3981,7 @@ public void generate() { conditionsFromItem(burzumSteelArmorPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_PLATE_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_PLATE_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelHelmetPlate.getItem()), burzumSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -3991,7 +3991,7 @@ public void generate() { conditionsFromItem(burzumSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_PLATE_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_PLATE_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelChainmail.getItem()), burzumSteelChainmail.getComponentChanges())) @@ -4004,7 +4004,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.URUK_HAI_CUIRASS)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_PLATE_LEGGINGS.getDefaultStack(), "leggings", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_PLATE_LEGGINGS.getDefaultStack(), "leggings", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .input(EquipmentItemsME.URUK_HAI_MAIL_COAT) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -4016,7 +4016,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.URUK_HAI_MAIL_COAT)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_PLATE_BOOTS.getDefaultStack(), "boots", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_PLATE_BOOTS.getDefaultStack(), "boots", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -4025,14 +4025,14 @@ public void generate() { conditionsFromItem(burzumSteelArmorPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_PAINTED_PLATE_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_PAINTED_PLATE_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .input(EquipmentItemsME.URUK_HAI_PLATE_HELMET) .input(ResourceItemsME.ISENGARD_BANNER_PATTERN) .criterion(hasItem(EquipmentItemsME.URUK_HAI_PLATE_HELMET), conditionsFromItem(EquipmentItemsME.URUK_HAI_PLATE_HELMET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_SAPPER_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_SAPPER_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelHelmetPlate.getItem()), burzumSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -4042,14 +4042,14 @@ public void generate() { conditionsFromItem(burzumSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_PAINTED_SAPPER_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_PAINTED_SAPPER_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .input(EquipmentItemsME.URUK_HAI_SAPPER_HELMET) .input(ResourceItemsME.ISENGARD_BANNER_PATTERN) .criterion(hasItem(EquipmentItemsME.URUK_HAI_SAPPER_HELMET), conditionsFromItem(EquipmentItemsME.URUK_HAI_SAPPER_HELMET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_BERSERKER_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_BERSERKER_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelHelmetPlate.getItem()), burzumSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -4059,14 +4059,14 @@ public void generate() { conditionsFromItem(burzumSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_PAINTED_BERSERKER_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_PAINTED_BERSERKER_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .input(EquipmentItemsME.URUK_HAI_BERSERKER_HELMET) .input(ResourceItemsME.ISENGARD_BANNER_PATTERN) .criterion(hasItem(EquipmentItemsME.URUK_HAI_BERSERKER_HELMET), conditionsFromItem(EquipmentItemsME.URUK_HAI_BERSERKER_HELMET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_COMMANDER_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_COMMANDER_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .input(EquipmentItemsME.URUK_HAI_PLATE_HELMET) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -4076,14 +4076,14 @@ public void generate() { conditionsFromItem(EquipmentItemsME.URUK_HAI_PLATE_HELMET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_PAINTED_COMMANDER_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.URUK_HAI_PAINTED_COMMANDER_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .input(EquipmentItemsME.URUK_HAI_COMMANDER_HELMET) .input(ResourceItemsME.ISENGARD_BANNER_PATTERN) .criterion(hasItem(EquipmentItemsME.URUK_HAI_COMMANDER_HELMET), conditionsFromItem(EquipmentItemsME.URUK_HAI_COMMANDER_HELMET)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORTHANC_GUARD_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORTHANC_GUARD_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelHelmetPlate.getItem()), steelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -4093,7 +4093,7 @@ public void generate() { conditionsFromItem(steelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORTHANC_GUARD_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORTHANC_GUARD_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -4106,7 +4106,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.MAIL_HAUBERK)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORTHANC_GUARD_LEGGINGS.getDefaultStack(), "leggings", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORTHANC_GUARD_LEGGINGS.getDefaultStack(), "leggings", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .input(EquipmentItemsME.MAIL_SKIRT) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -4118,7 +4118,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.MAIL_SKIRT)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORTHANC_GUARD_BOOTS.getDefaultStack(), "boots", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORTHANC_GUARD_BOOTS.getDefaultStack(), "boots", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -4127,7 +4127,7 @@ public void generate() { conditionsFromItem(steelArmorPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORTHANC_COMMANDER_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORTHANC_COMMANDER_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .input(Items.FEATHER) .input(EquipmentItemsME.ORTHANC_GUARD_HELMET) .input(Items.FEATHER) @@ -4137,7 +4137,7 @@ public void generate() { conditionsFromItem(steelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORTHANC_GUARD_CAPE.getDefaultStack(), "backAttachment", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ORTHANC_GUARD_CAPE.getDefaultStack(), "backAttachment", DispositionType.EVIL) .input(ResourceItemsME.FABRIC) .input(Items.STRING) .input(ResourceItemsME.FABRIC) @@ -4154,7 +4154,7 @@ public void generate() { //endregion //region MISTIES - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_BONE_PAULDRON.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_BONE_PAULDRON.getDefaultStack(), "chestplate", DispositionType.EVIL) .input(Items.LEATHER) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of(MiddleEarth.MOD_ID, "bones"))) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of(MiddleEarth.MOD_ID, "bones"))) @@ -4164,7 +4164,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_SEEKER_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_SEEKER_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .input(Items.LEATHER) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) .input(Items.LEATHER) @@ -4174,7 +4174,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT.getDefaultStack(), "chestplate", DispositionType.EVIL) .input(Items.LEATHER) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of(MiddleEarth.MOD_ID, "bones"))) .input(Items.LEATHER) @@ -4187,7 +4187,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_LEATHER_LEGGINGS.getDefaultStack(), "leggings", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_LEATHER_LEGGINGS.getDefaultStack(), "leggings", DispositionType.EVIL) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -4199,7 +4199,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_LACED_BOOTS.getDefaultStack(), "boots", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_LACED_BOOTS.getDefaultStack(), "boots", DispositionType.EVIL) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -4208,7 +4208,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_SKULLCAP_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_SKULLCAP_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironHelmetPlate.getItem()), ironHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironArmorPlate.getItem()), ironArmorPlate.getComponentChanges())) @@ -4218,7 +4218,7 @@ public void generate() { conditionsFromItem(ironHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_MAIL_COIF.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_MAIL_COIF.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -4228,7 +4228,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_MAIL_HAUBERK.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_MAIL_HAUBERK.getDefaultStack(), "chestplate", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -4241,7 +4241,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_MAIL_COAT.getDefaultStack(), "leggings", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_MAIL_COAT.getDefaultStack(), "leggings", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -4253,7 +4253,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_SOLDIER_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_SOLDIER_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelHelmetPlate.getItem()), burzumSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -4263,7 +4263,7 @@ public void generate() { conditionsFromItem(burzumSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_SCREECHER_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_SCREECHER_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelHelmetPlate.getItem()), burzumSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -4273,7 +4273,7 @@ public void generate() { conditionsFromItem(burzumSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_SCALE_COAT.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_SCALE_COAT.getDefaultStack(), "chestplate", DispositionType.EVIL) .input(Items.LEATHER) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of(MiddleEarth.MOD_ID, "bones"))) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -4286,7 +4286,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_VEST.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_VEST.getDefaultStack(), "chestplate", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelChainmail.getItem()), burzumSteelChainmail.getComponentChanges())) @@ -4299,7 +4299,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_CRESTED_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_CRESTED_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelHelmetPlate.getItem()), burzumSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -4309,7 +4309,7 @@ public void generate() { conditionsFromItem(burzumSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_CHESTPLATE.getDefaultStack(), "chestplate", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_CHESTPLATE.getDefaultStack(), "chestplate", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelChainmail.getItem()), burzumSteelChainmail.getComponentChanges())) @@ -4322,7 +4322,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_VEST)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_HOBGOBLIN_MAIL_COAT.getDefaultStack(), "leggings", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_HOBGOBLIN_MAIL_COAT.getDefaultStack(), "leggings", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .input(EquipmentItemsME.GUNDABAD_MAIL_COAT) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -4334,7 +4334,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.ORCISH_MAIL_COAT)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATED_BOOTS.getDefaultStack(), "boots", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATED_BOOTS.getDefaultStack(), "boots", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -4343,7 +4343,7 @@ public void generate() { conditionsFromItem(burzumSteelArmorPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_LARGE_CREST_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_LARGE_CREST_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelHelmetPlate.getItem()), burzumSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -4353,7 +4353,7 @@ public void generate() { conditionsFromItem(burzumSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_LONG_HORN_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_LONG_HORN_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelHelmetPlate.getItem()), burzumSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -4363,7 +4363,7 @@ public void generate() { conditionsFromItem(burzumSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_SMALL_HORN_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_SMALL_HORN_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelHelmetPlate.getItem()), burzumSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -4373,7 +4373,7 @@ public void generate() { conditionsFromItem(burzumSteelHelmetPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_CAPTAIN_HELMET.getDefaultStack(), "helmet", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GUNDABAD_CAPTAIN_HELMET.getDefaultStack(), "helmet", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelHelmetPlate.getItem()), burzumSteelHelmetPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) @@ -4389,7 +4389,7 @@ public void generate() { //MOUNT ARMORS - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_HORSE_ARMOR.getDefaultStack(), "mount_armor", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.GONDORIAN_HORSE_ARMOR.getDefaultStack(), "mount_armor", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .input(ResourceItemsME.FABRIC) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -4401,7 +4401,7 @@ public void generate() { conditionsFromItem(steelArmorPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_HORSE_ARMOR.getDefaultStack(), "mount_armor", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.ROHIRRIC_HORSE_ARMOR.getDefaultStack(), "mount_armor", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .input(ResourceItemsME.FABRIC) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -4413,7 +4413,7 @@ public void generate() { conditionsFromItem(steelArmorPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_HORSE_ARMOR.getDefaultStack(), "mount_armor", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.DALISH_HORSE_ARMOR.getDefaultStack(), "mount_armor", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) .input(ResourceItemsME.FABRIC) .componentInput(new ComponentsIngredient(Ingredient.ofItems(steelArmorPlate.getItem()), steelArmorPlate.getComponentChanges())) @@ -4425,7 +4425,7 @@ public void generate() { conditionsFromItem(steelArmorPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_HORSE_ARMOR.getDefaultStack(), "mount_armor", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.LORIEN_HORSE_ARMOR.getDefaultStack(), "mount_armor", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(edhelSteelArmorPlate.getItem()), edhelSteelArmorPlate.getComponentChanges())) .input(ResourceItemsME.FABRIC) .componentInput(new ComponentsIngredient(Ingredient.ofItems(edhelSteelArmorPlate.getItem()), edhelSteelArmorPlate.getComponentChanges())) @@ -4437,7 +4437,7 @@ public void generate() { conditionsFromItem(edhelSteelArmorPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BROADHOOF_GOAT_PADDED_ARMOR.getDefaultStack(), "mount_armor", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BROADHOOF_GOAT_PADDED_ARMOR.getDefaultStack(), "mount_armor", DispositionType.GOOD) .input(Items.LEATHER) .input(ResourceItemsME.FABRIC) .input(ResourceItemsME.FABRIC) @@ -4449,7 +4449,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BROADHOOF_GOAT_ORNAMENTED_PADDED_ARMOR.getDefaultStack(), "mount_armor", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BROADHOOF_GOAT_ORNAMENTED_PADDED_ARMOR.getDefaultStack(), "mount_armor", DispositionType.GOOD) .input(Items.LEATHER) .input(Items.GOLD_INGOT) .input(EquipmentItemsME.BROADHOOF_GOAT_PADDED_ARMOR) @@ -4461,7 +4461,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.BROADHOOF_GOAT_PADDED_ARMOR)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BROADHOOF_GOAT_PLATE_ARMOR.getDefaultStack(), "mount_armor", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.BROADHOOF_GOAT_PLATE_ARMOR.getDefaultStack(), "mount_armor", DispositionType.GOOD) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) .input(ResourceItemsME.FABRIC) .componentInput(new ComponentsIngredient(Ingredient.ofItems(khazadSteelArmorPlate.getItem()), khazadSteelArmorPlate.getComponentChanges())) @@ -4473,7 +4473,7 @@ public void generate() { conditionsFromItem(khazadSteelArmorPlate.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WARG_LEATHER_ARMOR.getDefaultStack(), "mount_armor", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WARG_LEATHER_ARMOR.getDefaultStack(), "mount_armor", DispositionType.EVIL) .input(Items.LEATHER) .input(Items.LEATHER) .input(Items.LEATHER) @@ -4485,7 +4485,7 @@ public void generate() { conditionsFromItem(Items.LEATHER)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WARG_REINFORCED_LEATHER_ARMOR.getDefaultStack(), "mount_armor", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WARG_REINFORCED_LEATHER_ARMOR.getDefaultStack(), "mount_armor", DispositionType.EVIL) .input(Items.LEATHER) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of(MiddleEarth.MOD_ID, "bones"))) .input(EquipmentItemsME.WARG_LEATHER_ARMOR) @@ -4497,7 +4497,7 @@ public void generate() { conditionsFromItem(EquipmentItemsME.WARG_LEATHER_ARMOR)) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WARG_MORDOR_MAIL_ARMOR.getDefaultStack(), "mount_armor", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WARG_MORDOR_MAIL_ARMOR.getDefaultStack(), "mount_armor", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) .input(Items.LEATHER) .componentInput(new ComponentsIngredient(Ingredient.ofItems(ironChainmail.getItem()), ironChainmail.getComponentChanges())) @@ -4509,7 +4509,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WARG_MORDOR_PLATE_ARMOR.getDefaultStack(), "mount_armor", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WARG_MORDOR_PLATE_ARMOR.getDefaultStack(), "mount_armor", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .input(EquipmentItemsME.WARG_MORDOR_MAIL_ARMOR) @@ -4521,7 +4521,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WARG_ISENGARD_PLATE_ARMOR.getDefaultStack(), "mount_armor", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WARG_ISENGARD_PLATE_ARMOR.getDefaultStack(), "mount_armor", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .input(Items.LEATHER) @@ -4533,7 +4533,7 @@ public void generate() { conditionsFromItem(ironChainmail.getItem())) .offerTo(exporter); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WARG_GUNDABAD_PLATE_ARMOR.getDefaultStack(), "mount_armor", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, EquipmentItemsME.WARG_GUNDABAD_PLATE_ARMOR.getDefaultStack(), "mount_armor", DispositionType.EVIL) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelArmorPlate.getItem()), burzumSteelArmorPlate.getComponentChanges())) .input(Items.LEATHER) diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/recipes/ArtisanTableHandheldRecipeProvider.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/recipes/ArtisanTableHandheldRecipeProvider.java index 036d5ecac7..7c1be3f69e 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/recipes/ArtisanTableHandheldRecipeProvider.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/recipes/ArtisanTableHandheldRecipeProvider.java @@ -29,7 +29,7 @@ import net.sevenstars.middleearth.item.ToolItemsME; import net.sevenstars.middleearth.item.WeaponItemsME; import net.sevenstars.middleearth.item.utils.SmithingTrimPatternsME; -import net.sevenstars.middleearth.resources.datas.Disposition; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; import java.util.Optional; import java.util.concurrent.CompletableFuture; @@ -94,186 +94,186 @@ public void generate() { RegistryWrapper.Impl itemLookup = registries.getOrThrow(RegistryKeys.ITEM); //region WEAPONS - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.IRON, Items.IRON_SWORD.getDefaultStack(), false, Disposition.NEUTRAL); - createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.IRON, WeaponItemsME.IRON_DAGGER.getDefaultStack(), false, Disposition.NEUTRAL); - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.IRON, WeaponItemsME.IRON_SPEAR.getDefaultStack(), false, Disposition.NEUTRAL); - - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.GOLD, Items.GOLDEN_SWORD.getDefaultStack(), false, Disposition.NEUTRAL); - createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.GOLD, WeaponItemsME.GOLDEN_DAGGER.getDefaultStack(), false, Disposition.NEUTRAL); - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.GOLD, WeaponItemsME.GOLDEN_SPEAR.getDefaultStack(), false, Disposition.NEUTRAL); - - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.NETHERITE, Items.NETHERITE_SWORD.getDefaultStack(), false, Disposition.NEUTRAL); - createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.NETHERITE, WeaponItemsME.NETHERITE_DAGGER.getDefaultStack(), false, Disposition.NEUTRAL); - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.NETHERITE, WeaponItemsME.NETHERITE_SPEAR.getDefaultStack(), false, Disposition.NEUTRAL); - - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.BRONZE, WeaponItemsME.BRONZE_SWORD.getDefaultStack(), false, Disposition.NEUTRAL); - createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.BRONZE, WeaponItemsME.BRONZE_DAGGER.getDefaultStack(), false, Disposition.NEUTRAL); - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.BRONZE, WeaponItemsME.BRONZE_SPEAR.getDefaultStack(), false, Disposition.NEUTRAL); - - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.CRUDE, WeaponItemsME.CRUDE_FALCHION.getDefaultStack(), false, Disposition.EVIL); - createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.CRUDE, WeaponItemsME.CRUDE_DAGGER.getDefaultStack(), false, Disposition.EVIL); - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.CRUDE, WeaponItemsME.CRUDE_SPEAR.getDefaultStack(), false, Disposition.EVIL); - createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.CRUDE, WeaponItemsME.CRUDE_LONGBLADE.getDefaultStack(), false, Disposition.EVIL); - - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.GONDORIAN_SWORD.getDefaultStack(), false, Disposition.GOOD); - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.GONDORIAN_NOBLE_SWORD.getDefaultStack(), true, Disposition.GOOD); - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.ROHIRRIC_SWORD.getDefaultStack(), false, Disposition.GOOD); - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.ROHIRRIC_NOBLE_SWORD.getDefaultStack(), true, Disposition.GOOD); - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_SWORD.getDefaultStack(), false, Disposition.GOOD); - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_NOBLE_SWORD.getDefaultStack(), true, Disposition.GOOD); - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_HEYDAY_SWORD.getDefaultStack(), true, Disposition.GOOD); - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.STEEL_SWORD.getDefaultStack(), false, Disposition.NEUTRAL); - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.BLACK_NUMENOREAN_SWORD.getDefaultStack(), true, Disposition.EVIL); - - createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.GONDORIAN_DAGGER.getDefaultStack(), false, Disposition.GOOD); - createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.GONDORIAN_NOBLE_DAGGER.getDefaultStack(), true, Disposition.GOOD); - createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.ROHIRRIC_DAGGER.getDefaultStack(), false, Disposition.GOOD); - createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.ROHIRRIC_NOBLE_DAGGER.getDefaultStack(), true, Disposition.GOOD); - createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_DAGGER.getDefaultStack(), false, Disposition.GOOD); - createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_HEYDAY_DAGGER.getDefaultStack(), true, Disposition.GOOD); - createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_NOBLE_DAGGER.getDefaultStack(), true, Disposition.GOOD); - createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.BLACK_NUMENOREAN_DAGGER.getDefaultStack(), true, Disposition.EVIL); - - createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.GONDORIAN_LONGSWORD.getDefaultStack(), false, Disposition.GOOD); - createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.GONDORIAN_NOBLE_LONGSWORD.getDefaultStack(), true, Disposition.GOOD); - createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.ROHIRRIC_LONGSWORD.getDefaultStack(), false, Disposition.GOOD); - createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.ROHIRRIC_NOBLE_LONGSWORD.getDefaultStack(), true, Disposition.GOOD); - createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_LONGSWORD.getDefaultStack(), false, Disposition.GOOD); - createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_HEYDAY_LONGSWORD.getDefaultStack(), true, Disposition.GOOD); - createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_HEYDAY_SCIMITAR.getDefaultStack(), true, Disposition.GOOD); - createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_NOBLE_LONGSWORD.getDefaultStack(), true, Disposition.GOOD); - createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.BLACK_NUMENOREAN_LONGSWORD.getDefaultStack(), true, Disposition.EVIL); - - createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.GONDORIAN_AXE.getDefaultStack(), false, Optional.empty(), Disposition.GOOD); - createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.GONDORIAN_NOBLE_AXE.getDefaultStack(), true, Optional.empty(), Disposition.GOOD); - createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.ROHIRRIC_AXE.getDefaultStack(), false, Optional.empty(), Disposition.GOOD); - createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.ROHIRRIC_NOBLE_AXE.getDefaultStack(), true, Optional.empty(), Disposition.GOOD); - createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_AXE.getDefaultStack(), false, Optional.empty(), Disposition.GOOD); - createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_NOBLE_AXE.getDefaultStack(), true, Optional.empty(), Disposition.GOOD); - createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_HEYDAY_AXE.getDefaultStack(), true, Optional.empty(), Disposition.GOOD); - createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.BLACK_NUMENOREAN_AXE.getDefaultStack(), true, Optional.empty(), Disposition.EVIL); - - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.GONDORIAN_SPEAR.getDefaultStack(), false, Disposition.GOOD); - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.GONDORIAN_NOBLE_SPEAR.getDefaultStack(), true, Disposition.GOOD); - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.GONDORIAN_FOUNTAIN_GUARD_SPEAR.getDefaultStack(), true, Disposition.GOOD); - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.ROHIRRIC_SPEAR.getDefaultStack(), false, Disposition.GOOD); - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.ROHIRRIC_NOBLE_SPEAR.getDefaultStack(), true, Disposition.GOOD); - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_SPEAR.getDefaultStack(), false, Disposition.GOOD); - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_HEYDAY_SPEAR.getDefaultStack(), true, Disposition.GOOD); - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_NOBLE_SPEAR.getDefaultStack(), true, Disposition.GOOD); - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.STEEL_SPEAR.getDefaultStack(), false, Disposition.NEUTRAL); - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.BLACK_NUMENOREAN_SPEAR.getDefaultStack(), true, Disposition.EVIL); - - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.KHAZAD_STEEL, WeaponItemsME.EREBOR_SWORD.getDefaultStack(), false, Disposition.GOOD); - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.KHAZAD_STEEL, WeaponItemsME.EREBOR_NOBLE_SWORD.getDefaultStack(), true, Disposition.GOOD); - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.KHAZAD_STEEL, WeaponItemsME.KHAZAD_STEEL_SWORD.getDefaultStack(), false, Disposition.GOOD); - - createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.KHAZAD_STEEL, WeaponItemsME.EREBOR_DAGGER.getDefaultStack(), false, Disposition.GOOD); - createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.KHAZAD_STEEL, WeaponItemsME.EREBOR_NOBLE_DAGGER.getDefaultStack(), true, Disposition.GOOD); - - createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.KHAZAD_STEEL, WeaponItemsME.EREBOR_LONGSWORD.getDefaultStack(), false, Disposition.GOOD); - createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.KHAZAD_STEEL, WeaponItemsME.EREBOR_NOBLE_LONGSWORD.getDefaultStack(), true, Disposition.GOOD); - - createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.KHAZAD_STEEL, WeaponItemsME.EREBOR_AXE.getDefaultStack(), false, Optional.empty(), Disposition.GOOD); - createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.KHAZAD_STEEL, WeaponItemsME.EREBOR_NOBLE_AXE.getDefaultStack(), true, Optional.empty(), Disposition.GOOD); - - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.KHAZAD_STEEL, WeaponItemsME.KHAZAD_STEEL_SPEAR.getDefaultStack(), false, Disposition.GOOD); - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.KHAZAD_STEEL, WeaponItemsME.EREBOR_SPEAR.getDefaultStack(), false, Disposition.GOOD); - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.KHAZAD_STEEL, WeaponItemsME.EREBOR_NOBLE_SPEAR.getDefaultStack(), true, Disposition.GOOD); - - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.EDHEL_STEEL, WeaponItemsME.LORIEN_SWORD.getDefaultStack(), false, Disposition.GOOD); - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.EDHEL_STEEL, WeaponItemsME.LORIEN_NOBLE_SWORD.getDefaultStack(), true, Disposition.GOOD); - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.EDHEL_STEEL, WeaponItemsME.EDHEL_STEEL_SWORD.getDefaultStack(), false, Disposition.GOOD); - - createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.EDHEL_STEEL, WeaponItemsME.LORIEN_DAGGER.getDefaultStack(), false, Disposition.GOOD); - createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.EDHEL_STEEL, WeaponItemsME.LORIEN_NOBLE_DAGGER.getDefaultStack(), true, Disposition.GOOD); - - createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.EDHEL_STEEL, WeaponItemsME.LORIEN_GLAIVE.getDefaultStack(), false, Disposition.GOOD); - createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.EDHEL_STEEL, WeaponItemsME.LORIEN_NOBLE_GLAIVE.getDefaultStack(), true, Disposition.GOOD); - - createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.EDHEL_STEEL, WeaponItemsME.LORIEN_AXE.getDefaultStack(), false, Optional.empty(), Disposition.GOOD); - createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.EDHEL_STEEL, WeaponItemsME.LORIEN_NOBLE_AXE.getDefaultStack(), true, Optional.empty(), Disposition.GOOD); - - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.EDHEL_STEEL, WeaponItemsME.EDHEL_STEEL_SPEAR.getDefaultStack(), false, Disposition.GOOD); - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.EDHEL_STEEL, WeaponItemsME.LORIEN_SPEAR.getDefaultStack(), false, Disposition.GOOD); - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.EDHEL_STEEL, WeaponItemsME.LORIEN_NOBLE_SPEAR.getDefaultStack(), true, Disposition.GOOD); - - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.BURZUM_STEEL_SWORD.getDefaultStack(), false, Disposition.EVIL); - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.ORC_SWORD.getDefaultStack(), false, Disposition.EVIL); - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.MORDOR_FALCHION.getDefaultStack(), false, Disposition.EVIL); - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.MORDOR_ELITE_CLEAVER.getDefaultStack(), true, Disposition.EVIL); - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.ISENGARD_ORC_CLEAVER.getDefaultStack(), false, Disposition.EVIL); - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.URUK_HAI_FALCHION.getDefaultStack(), true, Disposition.EVIL); - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.GUNDABAD_FALCHION.getDefaultStack(), false, Disposition.EVIL); - createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.GUNDABAD_ELITE_CLEAVER.getDefaultStack(), true, Disposition.EVIL); - - createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.ORC_KNIFE.getDefaultStack(), false, Disposition.EVIL); - createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.MORDOR_DAGGER.getDefaultStack(), false, Disposition.EVIL); - createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.MORDOR_ELITE_DAGGER.getDefaultStack(), true, Disposition.EVIL); - createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.ISENGARD_ORC_DAGGER.getDefaultStack(), false, Disposition.EVIL); - createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.URUK_HAI_KNIFE.getDefaultStack(), true, Disposition.EVIL); - createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.GUNDABAD_SHANK.getDefaultStack(), false, Disposition.EVIL); - createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.GUNDABAD_ELITE_DAGGER.getDefaultStack(), true, Disposition.EVIL); - - createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.ORC_BROADBLADE.getDefaultStack(), false, Disposition.EVIL); - createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.MORDOR_SCIMITAR.getDefaultStack(), false, Disposition.EVIL); - createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.MORDOR_ELITE_WARBLADE.getDefaultStack(), true, Disposition.EVIL); - createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.ISENGARD_ORC_WARBLADE.getDefaultStack(), false, Disposition.EVIL); - createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.URUK_HAI_WARBLADE.getDefaultStack(), true, Disposition.EVIL); - createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.GUNDABAD_WARBLADE.getDefaultStack(), false, Disposition.EVIL); - createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.GUNDABAD_ELITE_SCIMITAR.getDefaultStack(), true, Disposition.EVIL); - - createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.ORC_AXE.getDefaultStack(), false, Optional.empty(), Disposition.EVIL); - createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.MORDOR_AXE.getDefaultStack(), false, Optional.empty(), Disposition.EVIL); - createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.MORDOR_ELITE_AXE.getDefaultStack(), true, Optional.empty(), Disposition.EVIL); - createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.ISENGARD_ORC_AXE.getDefaultStack(), false, Optional.empty(), Disposition.EVIL); - createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.URUK_HAI_AXE.getDefaultStack(), true, Optional.empty(), Disposition.EVIL); - createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.GUNDABAD_AXE.getDefaultStack(), false, Optional.empty(), Disposition.EVIL); - createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.GUNDABAD_ELITE_BATTLEAXE.getDefaultStack(), true, Optional.empty(), Disposition.EVIL); - - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.BURZUM_STEEL_SPEAR.getDefaultStack(), false, Disposition.EVIL); - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.ORC_SPEAR.getDefaultStack(), false, Disposition.EVIL); - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.MORDOR_SPEAR.getDefaultStack(), false, Disposition.EVIL); - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.MORDOR_ELITE_SPEAR.getDefaultStack(), true, Disposition.EVIL); - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.ISENGARD_ORC_SPEAR.getDefaultStack(), false, Disposition.EVIL); - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.URUK_HAI_SPEAR.getDefaultStack(), true, Disposition.EVIL); - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.GUNDABAD_SPEAR.getDefaultStack(), false, Disposition.EVIL); - createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.GUNDABAD_ELITE_SPEAR.getDefaultStack(), true, Disposition.EVIL); - - createArtisanTableBowRecipe(itemLookup, recipeExporter, WeaponItemsME.GONDORIAN_BOW.getDefaultStack(), Disposition.GOOD); - createArtisanTableLongbowRecipe(itemLookup, recipeExporter, WeaponItemsME.GONDORIAN_LONGBOW.getDefaultStack(), Disposition.GOOD); - createArtisanTableNobleLongbowRecipe(itemLookup, recipeExporter, WeaponItemsME.GONDORIAN_NOBLE_LONGBOW.getDefaultStack(), Disposition.GOOD); - - createArtisanTableBowRecipe(itemLookup, recipeExporter, WeaponItemsME.ROHIRRIC_BOW.getDefaultStack(), Disposition.GOOD); - createArtisanTableNobleBowRecipe(itemLookup, recipeExporter, WeaponItemsME.ROHIRRIC_NOBLE_BOW.getDefaultStack(), Disposition.GOOD); - createArtisanTableLongbowRecipe(itemLookup, recipeExporter, WeaponItemsME.ROHIRRIC_LONGBOW.getDefaultStack(), Disposition.GOOD); - - createArtisanTableLongbowRecipe(itemLookup, recipeExporter, WeaponItemsME.DALISH_LONGBOW.getDefaultStack(), Disposition.GOOD); - createArtisanTableNobleLongbowRecipe(itemLookup, recipeExporter, WeaponItemsME.DALISH_HEYDAY_LONGBOW.getDefaultStack(), Disposition.GOOD); - createArtisanTableNobleLongbowRecipe(itemLookup, recipeExporter, WeaponItemsME.DALISH_NOBLE_LONGBOW.getDefaultStack(), Disposition.GOOD); - - createArtisanTableBowRecipe(itemLookup, recipeExporter, WeaponItemsME.LORIEN_BOW.getDefaultStack(), Disposition.GOOD); - createArtisanTableLongbowRecipe(itemLookup, recipeExporter, WeaponItemsME.LORIEN_LONGBOW.getDefaultStack(), Disposition.GOOD); - createArtisanTableNobleLongbowRecipe(itemLookup, recipeExporter, WeaponItemsME.LORIEN_NOBLE_LONGBOW.getDefaultStack(), Disposition.GOOD); - - createArtisanTableBowRecipe(itemLookup, recipeExporter, WeaponItemsME.EREBOR_BOW.getDefaultStack(), Disposition.GOOD); - createArtisanTableNobleBowRecipe(itemLookup, recipeExporter, WeaponItemsME.EREBOR_NOBLE_BOW.getDefaultStack(), Disposition.GOOD); - createArtisanTableCrossbowRecipe(itemLookup, recipeExporter, WeaponItemsME.EREBOR_CROSSBOW.getDefaultStack(), Disposition.GOOD); - createArtisanTableNobleCrossbowRecipe(itemLookup, recipeExporter, WeaponItemsME.EREBOR_NOBLE_CROSSBOW.getDefaultStack(), Disposition.GOOD); - - createArtisanTableBowRecipe(itemLookup, recipeExporter, WeaponItemsME.ORCISH_BOW.getDefaultStack(), Disposition.EVIL); - - createArtisanTableBowRecipe(itemLookup, recipeExporter, WeaponItemsME.MORDOR_BOW.getDefaultStack(), Disposition.EVIL); - createArtisanTableNobleLongbowRecipe(itemLookup, recipeExporter, WeaponItemsME.MORDOR_ELITE_LONGBOW.getDefaultStack(), Disposition.EVIL); - - createArtisanTableNobleBowRecipe(itemLookup, recipeExporter, WeaponItemsME.URUK_HAI_BOW.getDefaultStack(), Disposition.EVIL); - createArtisanTableNobleCrossbowRecipe(itemLookup, recipeExporter, WeaponItemsME.URUK_HAI_CROSSBOW.getDefaultStack(), Disposition.EVIL); - - createArtisanTableBowRecipe(itemLookup, recipeExporter, WeaponItemsME.GUNDABAD_BOW.getDefaultStack(), Disposition.EVIL); - createArtisanTableCrossbowRecipe(itemLookup, recipeExporter, WeaponItemsME.GUNDABAD_CROSSBOW.getDefaultStack(), Disposition.EVIL); - - createArtisanTableBowRecipe(itemLookup, recipeExporter, Items.BOW.getDefaultStack(), Disposition.NEUTRAL); - createArtisanTableCrossbowRecipe(itemLookup, recipeExporter, Items.CROSSBOW.getDefaultStack(), Disposition.NEUTRAL); + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.IRON, Items.IRON_SWORD.getDefaultStack(), false, DispositionType.NEUTRAL); + createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.IRON, WeaponItemsME.IRON_DAGGER.getDefaultStack(), false, DispositionType.NEUTRAL); + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.IRON, WeaponItemsME.IRON_SPEAR.getDefaultStack(), false, DispositionType.NEUTRAL); + + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.GOLD, Items.GOLDEN_SWORD.getDefaultStack(), false, DispositionType.NEUTRAL); + createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.GOLD, WeaponItemsME.GOLDEN_DAGGER.getDefaultStack(), false, DispositionType.NEUTRAL); + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.GOLD, WeaponItemsME.GOLDEN_SPEAR.getDefaultStack(), false, DispositionType.NEUTRAL); + + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.NETHERITE, Items.NETHERITE_SWORD.getDefaultStack(), false, DispositionType.NEUTRAL); + createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.NETHERITE, WeaponItemsME.NETHERITE_DAGGER.getDefaultStack(), false, DispositionType.NEUTRAL); + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.NETHERITE, WeaponItemsME.NETHERITE_SPEAR.getDefaultStack(), false, DispositionType.NEUTRAL); + + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.BRONZE, WeaponItemsME.BRONZE_SWORD.getDefaultStack(), false, DispositionType.NEUTRAL); + createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.BRONZE, WeaponItemsME.BRONZE_DAGGER.getDefaultStack(), false, DispositionType.NEUTRAL); + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.BRONZE, WeaponItemsME.BRONZE_SPEAR.getDefaultStack(), false, DispositionType.NEUTRAL); + + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.CRUDE, WeaponItemsME.CRUDE_FALCHION.getDefaultStack(), false, DispositionType.EVIL); + createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.CRUDE, WeaponItemsME.CRUDE_DAGGER.getDefaultStack(), false, DispositionType.EVIL); + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.CRUDE, WeaponItemsME.CRUDE_SPEAR.getDefaultStack(), false, DispositionType.EVIL); + createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.CRUDE, WeaponItemsME.CRUDE_LONGBLADE.getDefaultStack(), false, DispositionType.EVIL); + + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.GONDORIAN_SWORD.getDefaultStack(), false, DispositionType.GOOD); + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.GONDORIAN_NOBLE_SWORD.getDefaultStack(), true, DispositionType.GOOD); + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.ROHIRRIC_SWORD.getDefaultStack(), false, DispositionType.GOOD); + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.ROHIRRIC_NOBLE_SWORD.getDefaultStack(), true, DispositionType.GOOD); + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_SWORD.getDefaultStack(), false, DispositionType.GOOD); + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_NOBLE_SWORD.getDefaultStack(), true, DispositionType.GOOD); + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_HEYDAY_SWORD.getDefaultStack(), true, DispositionType.GOOD); + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.STEEL_SWORD.getDefaultStack(), false, DispositionType.NEUTRAL); + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.BLACK_NUMENOREAN_SWORD.getDefaultStack(), true, DispositionType.EVIL); + + createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.GONDORIAN_DAGGER.getDefaultStack(), false, DispositionType.GOOD); + createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.GONDORIAN_NOBLE_DAGGER.getDefaultStack(), true, DispositionType.GOOD); + createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.ROHIRRIC_DAGGER.getDefaultStack(), false, DispositionType.GOOD); + createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.ROHIRRIC_NOBLE_DAGGER.getDefaultStack(), true, DispositionType.GOOD); + createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_DAGGER.getDefaultStack(), false, DispositionType.GOOD); + createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_HEYDAY_DAGGER.getDefaultStack(), true, DispositionType.GOOD); + createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_NOBLE_DAGGER.getDefaultStack(), true, DispositionType.GOOD); + createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.BLACK_NUMENOREAN_DAGGER.getDefaultStack(), true, DispositionType.EVIL); + + createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.GONDORIAN_LONGSWORD.getDefaultStack(), false, DispositionType.GOOD); + createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.GONDORIAN_NOBLE_LONGSWORD.getDefaultStack(), true, DispositionType.GOOD); + createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.ROHIRRIC_LONGSWORD.getDefaultStack(), false, DispositionType.GOOD); + createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.ROHIRRIC_NOBLE_LONGSWORD.getDefaultStack(), true, DispositionType.GOOD); + createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_LONGSWORD.getDefaultStack(), false, DispositionType.GOOD); + createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_HEYDAY_LONGSWORD.getDefaultStack(), true, DispositionType.GOOD); + createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_HEYDAY_SCIMITAR.getDefaultStack(), true, DispositionType.GOOD); + createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_NOBLE_LONGSWORD.getDefaultStack(), true, DispositionType.GOOD); + createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.BLACK_NUMENOREAN_LONGSWORD.getDefaultStack(), true, DispositionType.EVIL); + + createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.GONDORIAN_AXE.getDefaultStack(), false, Optional.empty(), DispositionType.GOOD); + createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.GONDORIAN_NOBLE_AXE.getDefaultStack(), true, Optional.empty(), DispositionType.GOOD); + createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.ROHIRRIC_AXE.getDefaultStack(), false, Optional.empty(), DispositionType.GOOD); + createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.ROHIRRIC_NOBLE_AXE.getDefaultStack(), true, Optional.empty(), DispositionType.GOOD); + createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_AXE.getDefaultStack(), false, Optional.empty(), DispositionType.GOOD); + createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_NOBLE_AXE.getDefaultStack(), true, Optional.empty(), DispositionType.GOOD); + createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_HEYDAY_AXE.getDefaultStack(), true, Optional.empty(), DispositionType.GOOD); + createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.BLACK_NUMENOREAN_AXE.getDefaultStack(), true, Optional.empty(), DispositionType.EVIL); + + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.GONDORIAN_SPEAR.getDefaultStack(), false, DispositionType.GOOD); + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.GONDORIAN_NOBLE_SPEAR.getDefaultStack(), true, DispositionType.GOOD); + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.GONDORIAN_FOUNTAIN_GUARD_SPEAR.getDefaultStack(), true, DispositionType.GOOD); + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.ROHIRRIC_SPEAR.getDefaultStack(), false, DispositionType.GOOD); + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.ROHIRRIC_NOBLE_SPEAR.getDefaultStack(), true, DispositionType.GOOD); + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_SPEAR.getDefaultStack(), false, DispositionType.GOOD); + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_HEYDAY_SPEAR.getDefaultStack(), true, DispositionType.GOOD); + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.DALISH_NOBLE_SPEAR.getDefaultStack(), true, DispositionType.GOOD); + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.STEEL_SPEAR.getDefaultStack(), false, DispositionType.NEUTRAL); + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.STEEL, WeaponItemsME.BLACK_NUMENOREAN_SPEAR.getDefaultStack(), true, DispositionType.EVIL); + + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.KHAZAD_STEEL, WeaponItemsME.EREBOR_SWORD.getDefaultStack(), false, DispositionType.GOOD); + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.KHAZAD_STEEL, WeaponItemsME.EREBOR_NOBLE_SWORD.getDefaultStack(), true, DispositionType.GOOD); + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.KHAZAD_STEEL, WeaponItemsME.KHAZAD_STEEL_SWORD.getDefaultStack(), false, DispositionType.GOOD); + + createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.KHAZAD_STEEL, WeaponItemsME.EREBOR_DAGGER.getDefaultStack(), false, DispositionType.GOOD); + createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.KHAZAD_STEEL, WeaponItemsME.EREBOR_NOBLE_DAGGER.getDefaultStack(), true, DispositionType.GOOD); + + createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.KHAZAD_STEEL, WeaponItemsME.EREBOR_LONGSWORD.getDefaultStack(), false, DispositionType.GOOD); + createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.KHAZAD_STEEL, WeaponItemsME.EREBOR_NOBLE_LONGSWORD.getDefaultStack(), true, DispositionType.GOOD); + + createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.KHAZAD_STEEL, WeaponItemsME.EREBOR_AXE.getDefaultStack(), false, Optional.empty(), DispositionType.GOOD); + createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.KHAZAD_STEEL, WeaponItemsME.EREBOR_NOBLE_AXE.getDefaultStack(), true, Optional.empty(), DispositionType.GOOD); + + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.KHAZAD_STEEL, WeaponItemsME.KHAZAD_STEEL_SPEAR.getDefaultStack(), false, DispositionType.GOOD); + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.KHAZAD_STEEL, WeaponItemsME.EREBOR_SPEAR.getDefaultStack(), false, DispositionType.GOOD); + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.KHAZAD_STEEL, WeaponItemsME.EREBOR_NOBLE_SPEAR.getDefaultStack(), true, DispositionType.GOOD); + + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.EDHEL_STEEL, WeaponItemsME.LORIEN_SWORD.getDefaultStack(), false, DispositionType.GOOD); + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.EDHEL_STEEL, WeaponItemsME.LORIEN_NOBLE_SWORD.getDefaultStack(), true, DispositionType.GOOD); + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.EDHEL_STEEL, WeaponItemsME.EDHEL_STEEL_SWORD.getDefaultStack(), false, DispositionType.GOOD); + + createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.EDHEL_STEEL, WeaponItemsME.LORIEN_DAGGER.getDefaultStack(), false, DispositionType.GOOD); + createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.EDHEL_STEEL, WeaponItemsME.LORIEN_NOBLE_DAGGER.getDefaultStack(), true, DispositionType.GOOD); + + createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.EDHEL_STEEL, WeaponItemsME.LORIEN_GLAIVE.getDefaultStack(), false, DispositionType.GOOD); + createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.EDHEL_STEEL, WeaponItemsME.LORIEN_NOBLE_GLAIVE.getDefaultStack(), true, DispositionType.GOOD); + + createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.EDHEL_STEEL, WeaponItemsME.LORIEN_AXE.getDefaultStack(), false, Optional.empty(), DispositionType.GOOD); + createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.EDHEL_STEEL, WeaponItemsME.LORIEN_NOBLE_AXE.getDefaultStack(), true, Optional.empty(), DispositionType.GOOD); + + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.EDHEL_STEEL, WeaponItemsME.EDHEL_STEEL_SPEAR.getDefaultStack(), false, DispositionType.GOOD); + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.EDHEL_STEEL, WeaponItemsME.LORIEN_SPEAR.getDefaultStack(), false, DispositionType.GOOD); + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.EDHEL_STEEL, WeaponItemsME.LORIEN_NOBLE_SPEAR.getDefaultStack(), true, DispositionType.GOOD); + + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.BURZUM_STEEL_SWORD.getDefaultStack(), false, DispositionType.EVIL); + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.ORC_SWORD.getDefaultStack(), false, DispositionType.EVIL); + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.MORDOR_FALCHION.getDefaultStack(), false, DispositionType.EVIL); + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.MORDOR_ELITE_CLEAVER.getDefaultStack(), true, DispositionType.EVIL); + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.ISENGARD_ORC_CLEAVER.getDefaultStack(), false, DispositionType.EVIL); + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.URUK_HAI_FALCHION.getDefaultStack(), true, DispositionType.EVIL); + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.GUNDABAD_FALCHION.getDefaultStack(), false, DispositionType.EVIL); + createArtisanTableSwordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.GUNDABAD_ELITE_CLEAVER.getDefaultStack(), true, DispositionType.EVIL); + + createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.ORC_KNIFE.getDefaultStack(), false, DispositionType.EVIL); + createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.MORDOR_DAGGER.getDefaultStack(), false, DispositionType.EVIL); + createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.MORDOR_ELITE_DAGGER.getDefaultStack(), true, DispositionType.EVIL); + createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.ISENGARD_ORC_DAGGER.getDefaultStack(), false, DispositionType.EVIL); + createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.URUK_HAI_KNIFE.getDefaultStack(), true, DispositionType.EVIL); + createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.GUNDABAD_SHANK.getDefaultStack(), false, DispositionType.EVIL); + createArtisanTableDaggerRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.GUNDABAD_ELITE_DAGGER.getDefaultStack(), true, DispositionType.EVIL); + + createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.ORC_BROADBLADE.getDefaultStack(), false, DispositionType.EVIL); + createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.MORDOR_SCIMITAR.getDefaultStack(), false, DispositionType.EVIL); + createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.MORDOR_ELITE_WARBLADE.getDefaultStack(), true, DispositionType.EVIL); + createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.ISENGARD_ORC_WARBLADE.getDefaultStack(), false, DispositionType.EVIL); + createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.URUK_HAI_WARBLADE.getDefaultStack(), true, DispositionType.EVIL); + createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.GUNDABAD_WARBLADE.getDefaultStack(), false, DispositionType.EVIL); + createArtisanTableLongswordRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.GUNDABAD_ELITE_SCIMITAR.getDefaultStack(), true, DispositionType.EVIL); + + createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.ORC_AXE.getDefaultStack(), false, Optional.empty(), DispositionType.EVIL); + createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.MORDOR_AXE.getDefaultStack(), false, Optional.empty(), DispositionType.EVIL); + createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.MORDOR_ELITE_AXE.getDefaultStack(), true, Optional.empty(), DispositionType.EVIL); + createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.ISENGARD_ORC_AXE.getDefaultStack(), false, Optional.empty(), DispositionType.EVIL); + createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.URUK_HAI_AXE.getDefaultStack(), true, Optional.empty(), DispositionType.EVIL); + createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.GUNDABAD_AXE.getDefaultStack(), false, Optional.empty(), DispositionType.EVIL); + createArtisanTableAxeRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.GUNDABAD_ELITE_BATTLEAXE.getDefaultStack(), true, Optional.empty(), DispositionType.EVIL); + + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.BURZUM_STEEL_SPEAR.getDefaultStack(), false, DispositionType.EVIL); + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.ORC_SPEAR.getDefaultStack(), false, DispositionType.EVIL); + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.MORDOR_SPEAR.getDefaultStack(), false, DispositionType.EVIL); + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.MORDOR_ELITE_SPEAR.getDefaultStack(), true, DispositionType.EVIL); + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.ISENGARD_ORC_SPEAR.getDefaultStack(), false, DispositionType.EVIL); + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.URUK_HAI_SPEAR.getDefaultStack(), true, DispositionType.EVIL); + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.GUNDABAD_SPEAR.getDefaultStack(), false, DispositionType.EVIL); + createArtisanTableSpearRecipe(itemLookup, recipeExporter, MetalTypes.BURZUM_STEEL, WeaponItemsME.GUNDABAD_ELITE_SPEAR.getDefaultStack(), true, DispositionType.EVIL); + + createArtisanTableBowRecipe(itemLookup, recipeExporter, WeaponItemsME.GONDORIAN_BOW.getDefaultStack(), DispositionType.GOOD); + createArtisanTableLongbowRecipe(itemLookup, recipeExporter, WeaponItemsME.GONDORIAN_LONGBOW.getDefaultStack(), DispositionType.GOOD); + createArtisanTableNobleLongbowRecipe(itemLookup, recipeExporter, WeaponItemsME.GONDORIAN_NOBLE_LONGBOW.getDefaultStack(), DispositionType.GOOD); + + createArtisanTableBowRecipe(itemLookup, recipeExporter, WeaponItemsME.ROHIRRIC_BOW.getDefaultStack(), DispositionType.GOOD); + createArtisanTableNobleBowRecipe(itemLookup, recipeExporter, WeaponItemsME.ROHIRRIC_NOBLE_BOW.getDefaultStack(), DispositionType.GOOD); + createArtisanTableLongbowRecipe(itemLookup, recipeExporter, WeaponItemsME.ROHIRRIC_LONGBOW.getDefaultStack(), DispositionType.GOOD); + + createArtisanTableLongbowRecipe(itemLookup, recipeExporter, WeaponItemsME.DALISH_LONGBOW.getDefaultStack(), DispositionType.GOOD); + createArtisanTableNobleLongbowRecipe(itemLookup, recipeExporter, WeaponItemsME.DALISH_HEYDAY_LONGBOW.getDefaultStack(), DispositionType.GOOD); + createArtisanTableNobleLongbowRecipe(itemLookup, recipeExporter, WeaponItemsME.DALISH_NOBLE_LONGBOW.getDefaultStack(), DispositionType.GOOD); + + createArtisanTableBowRecipe(itemLookup, recipeExporter, WeaponItemsME.LORIEN_BOW.getDefaultStack(), DispositionType.GOOD); + createArtisanTableLongbowRecipe(itemLookup, recipeExporter, WeaponItemsME.LORIEN_LONGBOW.getDefaultStack(), DispositionType.GOOD); + createArtisanTableNobleLongbowRecipe(itemLookup, recipeExporter, WeaponItemsME.LORIEN_NOBLE_LONGBOW.getDefaultStack(), DispositionType.GOOD); + + createArtisanTableBowRecipe(itemLookup, recipeExporter, WeaponItemsME.EREBOR_BOW.getDefaultStack(), DispositionType.GOOD); + createArtisanTableNobleBowRecipe(itemLookup, recipeExporter, WeaponItemsME.EREBOR_NOBLE_BOW.getDefaultStack(), DispositionType.GOOD); + createArtisanTableCrossbowRecipe(itemLookup, recipeExporter, WeaponItemsME.EREBOR_CROSSBOW.getDefaultStack(), DispositionType.GOOD); + createArtisanTableNobleCrossbowRecipe(itemLookup, recipeExporter, WeaponItemsME.EREBOR_NOBLE_CROSSBOW.getDefaultStack(), DispositionType.GOOD); + + createArtisanTableBowRecipe(itemLookup, recipeExporter, WeaponItemsME.ORCISH_BOW.getDefaultStack(), DispositionType.EVIL); + + createArtisanTableBowRecipe(itemLookup, recipeExporter, WeaponItemsME.MORDOR_BOW.getDefaultStack(), DispositionType.EVIL); + createArtisanTableNobleLongbowRecipe(itemLookup, recipeExporter, WeaponItemsME.MORDOR_ELITE_LONGBOW.getDefaultStack(), DispositionType.EVIL); + + createArtisanTableNobleBowRecipe(itemLookup, recipeExporter, WeaponItemsME.URUK_HAI_BOW.getDefaultStack(), DispositionType.EVIL); + createArtisanTableNobleCrossbowRecipe(itemLookup, recipeExporter, WeaponItemsME.URUK_HAI_CROSSBOW.getDefaultStack(), DispositionType.EVIL); + + createArtisanTableBowRecipe(itemLookup, recipeExporter, WeaponItemsME.GUNDABAD_BOW.getDefaultStack(), DispositionType.EVIL); + createArtisanTableCrossbowRecipe(itemLookup, recipeExporter, WeaponItemsME.GUNDABAD_CROSSBOW.getDefaultStack(), DispositionType.EVIL); + + createArtisanTableBowRecipe(itemLookup, recipeExporter, Items.BOW.getDefaultStack(), DispositionType.NEUTRAL); + createArtisanTableCrossbowRecipe(itemLookup, recipeExporter, Items.CROSSBOW.getDefaultStack(), DispositionType.NEUTRAL); //endregion //region TOOLS @@ -281,79 +281,79 @@ public void generate() { ToolItemsME.BRONZE_AXE.getDefaultStack(), ToolItemsME.BRONZE_SHOVEL.getDefaultStack(), ToolItemsME.BRONZE_HOE.getDefaultStack(), - Optional.empty(), Disposition.NEUTRAL); + Optional.empty(), DispositionType.NEUTRAL); createToolSet(itemLookup, exporter, MetalTypes.CRUDE, ToolItemsME.CRUDE_PICKAXE.getDefaultStack(), ToolItemsME.CRUDE_AXE.getDefaultStack(), ToolItemsME.CRUDE_SHOVEL.getDefaultStack(), ToolItemsME.CRUDE_HOE.getDefaultStack(), - Optional.empty(), Disposition.EVIL); + Optional.empty(), DispositionType.EVIL); createToolSet(itemLookup, exporter, MetalTypes.IRON, Items.IRON_PICKAXE.getDefaultStack(), Items.IRON_AXE.getDefaultStack(), Items.IRON_SHOVEL.getDefaultStack(), Items.IRON_HOE.getDefaultStack(), - Optional.empty(), Disposition.NEUTRAL); + Optional.empty(), DispositionType.NEUTRAL); createToolSet(itemLookup, exporter, MetalTypes.GOLD, Items.GOLDEN_PICKAXE.getDefaultStack(), Items.GOLDEN_AXE.getDefaultStack(), Items.GOLDEN_SHOVEL.getDefaultStack(), Items.GOLDEN_HOE.getDefaultStack(), - Optional.empty(), Disposition.NEUTRAL); + Optional.empty(), DispositionType.NEUTRAL); createToolSet(itemLookup, exporter, MetalTypes.STEEL, ToolItemsME.STEEL_PICKAXE.getDefaultStack(), ToolItemsME.STEEL_AXE.getDefaultStack(), ToolItemsME.STEEL_SHOVEL.getDefaultStack(), ToolItemsME.STEEL_HOE.getDefaultStack(), - Optional.empty(), Disposition.NEUTRAL); + Optional.empty(), DispositionType.NEUTRAL); createToolSet(itemLookup, exporter, MetalTypes.KHAZAD_STEEL, ToolItemsME.KHAZAD_STEEL_PICKAXE.getDefaultStack(), ToolItemsME.KHAZAD_STEEL_AXE.getDefaultStack(), ToolItemsME.KHAZAD_STEEL_SHOVEL.getDefaultStack(), ToolItemsME.KHAZAD_STEEL_HOE.getDefaultStack(), - Optional.empty(), Disposition.GOOD); + Optional.empty(), DispositionType.GOOD); createToolSet(itemLookup, exporter, MetalTypes.EDHEL_STEEL, ToolItemsME.EDHEL_STEEL_PICKAXE.getDefaultStack(), ToolItemsME.EDHEL_STEEL_AXE.getDefaultStack(), ToolItemsME.EDHEL_STEEL_SHOVEL.getDefaultStack(), ToolItemsME.EDHEL_STEEL_HOE.getDefaultStack(), - Optional.empty(), Disposition.GOOD); + Optional.empty(), DispositionType.GOOD); createToolSet(itemLookup, exporter, MetalTypes.BURZUM_STEEL, ToolItemsME.BURZUM_STEEL_PICKAXE.getDefaultStack(), ToolItemsME.BURZUM_STEEL_AXE.getDefaultStack(), ToolItemsME.BURZUM_STEEL_SHOVEL.getDefaultStack(), ToolItemsME.BURZUM_STEEL_HOE.getDefaultStack(), - Optional.empty(), Disposition.EVIL); + Optional.empty(), DispositionType.EVIL); createToolSet(itemLookup, exporter, MetalTypes.MITHRIL, ToolItemsME.MITHRIL_PICKAXE.getDefaultStack(), ToolItemsME.MITHRIL_AXE.getDefaultStack(), ToolItemsME.MITHRIL_SHOVEL.getDefaultStack(), ToolItemsME.MITHRIL_HOE.getDefaultStack(), - Optional.of(MetalTypes.STEEL), Disposition.NEUTRAL); + Optional.of(MetalTypes.STEEL), DispositionType.NEUTRAL); createToolSet(itemLookup, exporter, MetalTypes.MITHRIL, ToolItemsME.MITHRIL_PICKAXE.getDefaultStack(), ToolItemsME.MITHRIL_AXE.getDefaultStack(), ToolItemsME.MITHRIL_SHOVEL.getDefaultStack(), ToolItemsME.MITHRIL_HOE.getDefaultStack(), - Optional.of(MetalTypes.KHAZAD_STEEL), Disposition.NEUTRAL); + Optional.of(MetalTypes.KHAZAD_STEEL), DispositionType.NEUTRAL); createToolSet(itemLookup, exporter, MetalTypes.MITHRIL, ToolItemsME.MITHRIL_PICKAXE.getDefaultStack(), ToolItemsME.MITHRIL_AXE.getDefaultStack(), ToolItemsME.MITHRIL_SHOVEL.getDefaultStack(), ToolItemsME.MITHRIL_HOE.getDefaultStack(), - Optional.of(MetalTypes.EDHEL_STEEL), Disposition.NEUTRAL); + Optional.of(MetalTypes.EDHEL_STEEL), DispositionType.NEUTRAL); createToolSet(itemLookup, exporter, MetalTypes.MITHRIL, ToolItemsME.MITHRIL_PICKAXE.getDefaultStack(), ToolItemsME.MITHRIL_AXE.getDefaultStack(), ToolItemsME.MITHRIL_SHOVEL.getDefaultStack(), ToolItemsME.MITHRIL_HOE.getDefaultStack(), - Optional.of(MetalTypes.BURZUM_STEEL), Disposition.NEUTRAL); + Optional.of(MetalTypes.BURZUM_STEEL), DispositionType.NEUTRAL); createToolSet(itemLookup, exporter, MetalTypes.NETHERITE, Items.NETHERITE_PICKAXE.getDefaultStack(), Items.NETHERITE_AXE.getDefaultStack(), Items.NETHERITE_SHOVEL.getDefaultStack(), Items.NETHERITE_HOE.getDefaultStack(), - Optional.empty(), Disposition.NEUTRAL); + Optional.empty(), DispositionType.NEUTRAL); //endregion //region SHIELDS @@ -385,7 +385,7 @@ public void generate() { burzumSteelShieldPlate.set(DataComponentTypes.TRIM, new ArmorTrim(getArmorTrimMaterialsRegistry().getOrThrow(RegistryKey.of(RegistryKeys.TRIM_MATERIAL, Identifier.of(MiddleEarth.MOD_ID, MetalTypes.BURZUM_STEEL.getName()))), getPattern())); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, Items.SHIELD.getDefaultStack(), "medium_shield", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, Items.SHIELD.getDefaultStack(), "medium_shield", DispositionType.NEUTRAL) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -397,7 +397,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(Items.SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.ROUND_SHIELD.getDefaultStack(), "medium_shield", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.ROUND_SHIELD.getDefaultStack(), "medium_shield", DispositionType.NEUTRAL) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -409,7 +409,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.ROUND_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.HEATER_SHIELD.getDefaultStack(), "medium_shield", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.HEATER_SHIELD.getDefaultStack(), "medium_shield", DispositionType.NEUTRAL) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -421,7 +421,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.HEATER_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.KITE_SHIELD.getDefaultStack(), "medium_shield", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.KITE_SHIELD.getDefaultStack(), "medium_shield", DispositionType.NEUTRAL) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -433,7 +433,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.KITE_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GONDORIAN_SHIELD.getDefaultStack(), "medium_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GONDORIAN_SHIELD.getDefaultStack(), "medium_shield", DispositionType.GOOD) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(ResourceItemsME.GONDOR_BANNER_PATTERN) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -445,7 +445,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.GONDORIAN_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GONDORIAN_TOWER_SHIELD.getDefaultStack(), "medium_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GONDORIAN_TOWER_SHIELD.getDefaultStack(), "medium_shield", DispositionType.GOOD) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(ResourceItemsME.GONDOR_BANNER_PATTERN) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -457,7 +457,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.GONDORIAN_TOWER_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GONDORIAN_KINGS_GUARD_TOWER_SHIELD.getDefaultStack(), "medium_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GONDORIAN_KINGS_GUARD_TOWER_SHIELD.getDefaultStack(), "medium_shield", DispositionType.GOOD) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(ResourceItemsME.GONDOR_BANNER_PATTERN) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -469,7 +469,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.GONDORIAN_KINGS_GUARD_TOWER_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.LAST_ALLIANCE_HEIRLOOM_TOWER_SHIELD.getDefaultStack(), "medium_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.LAST_ALLIANCE_HEIRLOOM_TOWER_SHIELD.getDefaultStack(), "medium_shield", DispositionType.GOOD) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(ResourceItemsME.GONDOR_BANNER_PATTERN) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -481,7 +481,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.LAST_ALLIANCE_HEIRLOOM_TOWER_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GONDORIAN_HERO_SHIELD.getDefaultStack(), "medium_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GONDORIAN_HERO_SHIELD.getDefaultStack(), "medium_shield", DispositionType.GOOD) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(Items.LEATHER) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -493,7 +493,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.GONDORIAN_HERO_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GONDORIAN_KNIGHT_SHIELD.getDefaultStack(), "heavy_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GONDORIAN_KNIGHT_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.GOOD) .input(ResourceItemsME.STEEL_NUGGET) .input(ResourceItemsME.GONDOR_BANNER_PATTERN) .input(ResourceItemsME.STEEL_NUGGET) @@ -507,7 +507,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_PLATE)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.GONDORIAN_KNIGHT_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GONDORIAN_ORNAMENTED_KNIGHT_SHIELD.getDefaultStack(), "heavy_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GONDORIAN_ORNAMENTED_KNIGHT_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.GOOD) .input(ResourceItemsME.STEEL_NUGGET) .input(ResourceItemsME.GONDOR_BANNER_PATTERN) .input(ResourceItemsME.STEEL_NUGGET) @@ -521,7 +521,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_PLATE)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.GONDORIAN_ORNAMENTED_KNIGHT_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.ROHIRRIC_SHIELD.getDefaultStack(), "medium_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.ROHIRRIC_SHIELD.getDefaultStack(), "medium_shield", DispositionType.GOOD) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(Items.WHITE_DYE) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -533,7 +533,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.ROHIRRIC_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.ROHIRRIC_BUCKING_HORSE_SHIELD.getDefaultStack(), "medium_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.ROHIRRIC_BUCKING_HORSE_SHIELD.getDefaultStack(), "medium_shield", DispositionType.GOOD) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(ResourceItemsME.ROHAN_BANNER_PATTERN) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -545,7 +545,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.ROHIRRIC_BUCKING_HORSE_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.ROHIRRIC_GALLOPING_HORSE_SHIELD.getDefaultStack(), "medium_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.ROHIRRIC_GALLOPING_HORSE_SHIELD.getDefaultStack(), "medium_shield", DispositionType.GOOD) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(ResourceItemsME.ROHAN_BANNER_PATTERN) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -557,7 +557,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.ROHIRRIC_GALLOPING_HORSE_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.ROHIRRIC_HORSE_HEAD_SHIELD.getDefaultStack(), "medium_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.ROHIRRIC_HORSE_HEAD_SHIELD.getDefaultStack(), "medium_shield", DispositionType.GOOD) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(ResourceItemsME.ROHAN_BANNER_PATTERN) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -569,7 +569,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.ROHIRRIC_HORSE_HEAD_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.ROHIRRIC_PLAINSMAN_SHIELD.getDefaultStack(), "medium_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.ROHIRRIC_PLAINSMAN_SHIELD.getDefaultStack(), "medium_shield", DispositionType.GOOD) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(Items.YELLOW_DYE) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -581,7 +581,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.ROHIRRIC_PLAINSMAN_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.ROHIRRIC_TWIN_HORSES_SHIELD.getDefaultStack(), "medium_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.ROHIRRIC_TWIN_HORSES_SHIELD.getDefaultStack(), "medium_shield", DispositionType.GOOD) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(ResourceItemsME.ROHAN_BANNER_PATTERN) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -593,7 +593,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.ROHIRRIC_TWIN_HORSES_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.ROHIRRIC_EORLING_SHIELD.getDefaultStack(), "heavy_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.ROHIRRIC_EORLING_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.GOOD) .input(ResourceItemsME.STEEL_NUGGET) .input(Items.YELLOW_DYE) .input(ResourceItemsME.STEEL_NUGGET) @@ -607,7 +607,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_PLATE)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.ROHIRRIC_EORLING_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.ROHIRRIC_ORNAMENTED_SHIELD.getDefaultStack(), "heavy_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.ROHIRRIC_ORNAMENTED_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.GOOD) .input(ResourceItemsME.STEEL_NUGGET) .input(ResourceItemsME.ROHAN_BANNER_PATTERN) .input(ResourceItemsME.STEEL_NUGGET) @@ -621,7 +621,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_PLATE)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.ROHIRRIC_ORNAMENTED_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.ROHIRRIC_ROYAL_GUARD_SHIELD.getDefaultStack(), "heavy_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.ROHIRRIC_ROYAL_GUARD_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.GOOD) .input(ResourceItemsME.STEEL_NUGGET) .input(Items.YELLOW_DYE) .input(ResourceItemsME.STEEL_NUGGET) @@ -635,7 +635,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_PLATE)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.ROHIRRIC_ROYAL_GUARD_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.DALISH_BLUE_OVAL_SHIELD.getDefaultStack(), "medium_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.DALISH_BLUE_OVAL_SHIELD.getDefaultStack(), "medium_shield", DispositionType.GOOD) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(Items.BLUE_DYE) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -647,7 +647,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.DALISH_BLUE_OVAL_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.DALISH_BARDING_OVAL_SHIELD.getDefaultStack(), "medium_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.DALISH_BARDING_OVAL_SHIELD.getDefaultStack(), "medium_shield", DispositionType.GOOD) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(Items.BLUE_DYE) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -659,7 +659,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.DALISH_BARDING_OVAL_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.DALISH_BLUE_BRACED_SHIELD.getDefaultStack(), "medium_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.DALISH_BLUE_BRACED_SHIELD.getDefaultStack(), "medium_shield", DispositionType.GOOD) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(Items.IRON_NUGGET) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -671,7 +671,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.DALISH_BLUE_BRACED_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.DALISH_BARDING_BRACED_SHIELD.getDefaultStack(), "medium_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.DALISH_BARDING_BRACED_SHIELD.getDefaultStack(), "medium_shield", DispositionType.GOOD) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(Items.IRON_NUGGET) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -683,7 +683,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.DALISH_BARDING_BRACED_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.DALISH_HEAVY_SHIELD.getDefaultStack(), "heavy_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.DALISH_HEAVY_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.GOOD) .input(ResourceItemsME.STEEL_NUGGET) .input(Items.WHITE_DYE) .input(ResourceItemsME.STEEL_NUGGET) @@ -697,7 +697,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_PLATE)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.DALISH_HEAVY_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.DALISH_BARDING_HEAVY_SHIELD.getDefaultStack(), "heavy_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.DALISH_BARDING_HEAVY_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.GOOD) .input(ResourceItemsME.STEEL_NUGGET) .input(Items.BLUE_DYE) .input(ResourceItemsME.STEEL_NUGGET) @@ -711,7 +711,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_PLATE)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.DALISH_BARDING_HEAVY_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.DALISH_ROYAL_HEAVY_SHIELD.getDefaultStack(), "heavy_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.DALISH_ROYAL_HEAVY_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.GOOD) .input(Items.GOLD_NUGGET) .input(Items.LIGHT_BLUE_DYE) .input(Items.GOLD_NUGGET) @@ -725,7 +725,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_PLATE)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.DALISH_ROYAL_HEAVY_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.DALISH_ROYAL_ROUND_SHIELD.getDefaultStack(), "heavy_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.DALISH_ROYAL_ROUND_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.GOOD) .input(Items.GOLD_NUGGET) .input(Items.LIGHT_BLUE_DYE) .input(Items.GOLD_NUGGET) @@ -739,7 +739,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_PLATE)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.DALISH_ROYAL_ROUND_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.DALISH_HEYDAY_ROUND_SHIELD.getDefaultStack(), "heavy_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.DALISH_HEYDAY_ROUND_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.GOOD) .input(ResourceItemsME.STEEL_NUGGET) .input(Items.ORANGE_DYE) .input(ResourceItemsME.STEEL_NUGGET) @@ -753,7 +753,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_PLATE)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.DALISH_HEYDAY_ROUND_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.LORIEN_SHIELD.getDefaultStack(), "medium_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.LORIEN_SHIELD.getDefaultStack(), "medium_shield", DispositionType.GOOD) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(Items.LEATHER) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -765,7 +765,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.LORIEN_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.LORIEN_LAURELS_SHIELD.getDefaultStack(), "medium_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.LORIEN_LAURELS_SHIELD.getDefaultStack(), "medium_shield", DispositionType.GOOD) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(Items.YELLOW_DYE) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -777,7 +777,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.LORIEN_LAURELS_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.LORIEN_MALLORN_SHIELD.getDefaultStack(), "medium_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.LORIEN_MALLORN_SHIELD.getDefaultStack(), "medium_shield", DispositionType.GOOD) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(Items.YELLOW_DYE) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -789,7 +789,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.LORIEN_MALLORN_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GALADHRIM_SHIELD.getDefaultStack(), "heavy_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GALADHRIM_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.GOOD) .input(ResourceItemsME.EDHEL_STEEL_NUGGET) .input(Items.YELLOW_DYE) .input(ResourceItemsME.EDHEL_STEEL_NUGGET) @@ -803,7 +803,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_PLATE)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.GALADHRIM_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GALADHRIM_LORD_SHIELD.getDefaultStack(), "heavy_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GALADHRIM_LORD_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.GOOD) .input(ResourceItemsME.EDHEL_STEEL_NUGGET) .input(Items.YELLOW_DYE) .input(ResourceItemsME.EDHEL_STEEL_NUGGET) @@ -817,7 +817,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_PLATE)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.GALADHRIM_LORD_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.EREBOR_SHIELD.getDefaultStack(), "medium_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.EREBOR_SHIELD.getDefaultStack(), "medium_shield", DispositionType.GOOD) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(ResourceItemsME.BRONZE_NUGGET) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -829,7 +829,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.EREBOR_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.EREBOR_CROSS_SHIELD.getDefaultStack(), "medium_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.EREBOR_CROSS_SHIELD.getDefaultStack(), "medium_shield", DispositionType.GOOD) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(ResourceItemsME.BRONZE_NUGGET) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -841,7 +841,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.EREBOR_CROSS_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.EREBOR_PLATED_SHIELD.getDefaultStack(), "medium_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.EREBOR_PLATED_SHIELD.getDefaultStack(), "medium_shield", DispositionType.GOOD) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(ResourceItemsME.BRONZE_NUGGET) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -853,7 +853,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.EREBOR_PLATED_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.EREBOR_ORNAMENTED_SHIELD.getDefaultStack(), "medium_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.EREBOR_ORNAMENTED_SHIELD.getDefaultStack(), "medium_shield", DispositionType.GOOD) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(Items.GOLD_NUGGET) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -865,7 +865,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.EREBOR_ORNAMENTED_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.EREBOR_REINFORCED_SHIELD.getDefaultStack(), "medium_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.EREBOR_REINFORCED_SHIELD.getDefaultStack(), "medium_shield", DispositionType.GOOD) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(Items.IRON_NUGGET) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -877,7 +877,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.EREBOR_REINFORCED_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.EREBOR_BUCKLER_SHIELD.getDefaultStack(), "heavy_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.EREBOR_BUCKLER_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.GOOD) .input(ResourceItemsME.KHAZAD_STEEL_NUGGET) .input(ResourceItemsME.BRONZE_INGOT) .input(ResourceItemsME.KHAZAD_STEEL_NUGGET) @@ -891,7 +891,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_PLATE)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.EREBOR_BUCKLER_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.EREBOR_TOWER_SHIELD.getDefaultStack(), "heavy_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.EREBOR_TOWER_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.GOOD) .input(ResourceItemsME.KHAZAD_STEEL_NUGGET) .input(ResourceItemsME.KHAZAD_STEEL_INGOT) .input(ResourceItemsME.KHAZAD_STEEL_NUGGET) @@ -905,7 +905,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_PLATE)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.EREBOR_TOWER_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.EREBOR_REINFORCED_TOWER_SHIELD.getDefaultStack(), "heavy_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.EREBOR_REINFORCED_TOWER_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.GOOD) .input(ResourceItemsME.KHAZAD_STEEL_NUGGET) .input(ResourceItemsME.KHAZAD_STEEL_INGOT) .input(ResourceItemsME.KHAZAD_STEEL_NUGGET) @@ -919,7 +919,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_PLATE)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.EREBOR_REINFORCED_TOWER_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.EREBOR_ORNAMENTED_TOWER_SHIELD.getDefaultStack(), "heavy_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.EREBOR_ORNAMENTED_TOWER_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.GOOD) .input(ResourceItemsME.KHAZAD_STEEL_NUGGET) .input(Items.GOLD_NUGGET) .input(ResourceItemsME.KHAZAD_STEEL_NUGGET) @@ -933,7 +933,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_PLATE)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.EREBOR_ORNAMENTED_TOWER_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.RAVENHILL_TOWER_SHIELD.getDefaultStack(), "heavy_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.RAVENHILL_TOWER_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.GOOD) .input(ResourceItemsME.KHAZAD_STEEL_NUGGET) .input(ResourceItemsME.KHAZAD_STEEL_INGOT) .input(ResourceItemsME.KHAZAD_STEEL_NUGGET) @@ -947,7 +947,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_PLATE)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.RAVENHILL_TOWER_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.RAVENHILL_REINFORCED_TOWER_SHIELD.getDefaultStack(), "heavy_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.RAVENHILL_REINFORCED_TOWER_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.GOOD) .input(ResourceItemsME.KHAZAD_STEEL_NUGGET) .input(ResourceItemsME.KHAZAD_STEEL_INGOT) .input(ResourceItemsME.KHAZAD_STEEL_NUGGET) @@ -961,7 +961,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_PLATE)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.RAVENHILL_REINFORCED_TOWER_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.RAVENHILL_ORNAMENTED_TOWER_SHIELD.getDefaultStack(), "heavy_shield", Disposition.GOOD) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.RAVENHILL_ORNAMENTED_TOWER_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.GOOD) .input(ResourceItemsME.KHAZAD_STEEL_NUGGET) .input(Items.GOLD_NUGGET) .input(ResourceItemsME.KHAZAD_STEEL_NUGGET) @@ -975,7 +975,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_PLATE)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.RAVENHILL_ORNAMENTED_TOWER_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_WOODEN_SHIELD.getDefaultStack(), "light_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_WOODEN_SHIELD.getDefaultStack(), "light_shield", DispositionType.EVIL) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(ResourceItemsME.CRUDE_INGOT) @@ -985,14 +985,14 @@ public void generate() { conditionsFromItem(ResourceItemsME.CRUDE_INGOT)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.MORDOR_WOODEN_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_PAINTED_WOODEN_SHIELD.getDefaultStack(), "light_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_PAINTED_WOODEN_SHIELD.getDefaultStack(), "light_shield", DispositionType.EVIL) .input(WeaponItemsME.MORDOR_WOODEN_SHIELD) .input(ResourceItemsME.MORDOR_BANNER_PATTERN) .criterion(hasItem(WeaponItemsME.MORDOR_WOODEN_SHIELD), conditionsFromItem(WeaponItemsME.MORDOR_WOODEN_SHIELD)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.MORDOR_PAINTED_WOODEN_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_ROUND_SHIELD.getDefaultStack(), "medium_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_ROUND_SHIELD.getDefaultStack(), "medium_shield", DispositionType.EVIL) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(ResourceItemsME.CRUDE_NUGGET) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -1004,7 +1004,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.MORDOR_ROUND_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_PAINTED_ROUND_SHIELD.getDefaultStack(), "medium_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_PAINTED_ROUND_SHIELD.getDefaultStack(), "medium_shield", DispositionType.EVIL) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(ResourceItemsME.MORDOR_BANNER_PATTERN) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -1016,14 +1016,14 @@ public void generate() { conditionsFromItem(ResourceItemsME.MORDOR_BANNER_PATTERN)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.MORDOR_PAINTED_ROUND_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_BLACK_ROUND_SHIELD.getDefaultStack(), "medium_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_BLACK_ROUND_SHIELD.getDefaultStack(), "medium_shield", DispositionType.EVIL) .input(WeaponItemsME.MORDOR_PAINTED_ROUND_SHIELD) .input(Items.BLACK_DYE) .criterion(hasItem(WeaponItemsME.MORDOR_PAINTED_ROUND_SHIELD), conditionsFromItem(WeaponItemsME.MORDOR_PAINTED_ROUND_SHIELD)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.MORDOR_BLACK_ROUND_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_BRACED_SHIELD.getDefaultStack(), "medium_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_BRACED_SHIELD.getDefaultStack(), "medium_shield", DispositionType.EVIL) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(Items.IRON_NUGGET) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -1035,21 +1035,21 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.MORDOR_BRACED_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_PAINTED_BRACED_SHIELD.getDefaultStack(), "medium_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_PAINTED_BRACED_SHIELD.getDefaultStack(), "medium_shield", DispositionType.EVIL) .input(WeaponItemsME.MORDOR_BRACED_SHIELD) .input(ResourceItemsME.MORDOR_BANNER_PATTERN) .criterion(hasItem(WeaponItemsME.MORDOR_BRACED_SHIELD), conditionsFromItem(WeaponItemsME.MORDOR_BRACED_SHIELD)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.MORDOR_PAINTED_BRACED_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_BLACK_BRACED_SHIELD.getDefaultStack(), "medium_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_BLACK_BRACED_SHIELD.getDefaultStack(), "medium_shield", DispositionType.EVIL) .input(WeaponItemsME.MORDOR_PAINTED_BRACED_SHIELD) .input(Items.BLACK_DYE) .criterion(hasItem(WeaponItemsME.MORDOR_PAINTED_BRACED_SHIELD), conditionsFromItem(WeaponItemsME.MORDOR_PAINTED_BRACED_SHIELD)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.MORDOR_BLACK_BRACED_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_LARGE_SHIELD.getDefaultStack(), "medium_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_LARGE_SHIELD.getDefaultStack(), "medium_shield", DispositionType.EVIL) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(Items.IRON_NUGGET) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -1061,28 +1061,28 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.MORDOR_LARGE_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_PAINTED_LARGE_SHIELD.getDefaultStack(), "medium_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_PAINTED_LARGE_SHIELD.getDefaultStack(), "medium_shield", DispositionType.EVIL) .input(WeaponItemsME.MORDOR_LARGE_SHIELD) .input(ResourceItemsME.MORDOR_BANNER_PATTERN) .criterion(hasItem(WeaponItemsME.MORDOR_LARGE_SHIELD), conditionsFromItem(WeaponItemsME.MORDOR_LARGE_SHIELD)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.MORDOR_PAINTED_LARGE_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_BLACK_LARGE_SHIELD.getDefaultStack(), "medium_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_BLACK_LARGE_SHIELD.getDefaultStack(), "medium_shield", DispositionType.EVIL) .input(WeaponItemsME.MORDOR_PAINTED_LARGE_SHIELD) .input(Items.BLACK_DYE) .criterion(hasItem(WeaponItemsME.MORDOR_PAINTED_LARGE_SHIELD), conditionsFromItem(WeaponItemsME.MORDOR_PAINTED_LARGE_SHIELD)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.MORDOR_BLACK_LARGE_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GONDORIAN_CONVERTED_SHIELD.getDefaultStack(), "medium_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GONDORIAN_CONVERTED_SHIELD.getDefaultStack(), "medium_shield", DispositionType.EVIL) .input(WeaponItemsME.GONDORIAN_SHIELD) .input(ResourceItemsME.MORDOR_BANNER_PATTERN) .criterion(hasItem(WeaponItemsME.GONDORIAN_SHIELD), conditionsFromItem(WeaponItemsME.GONDORIAN_SHIELD)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.GONDORIAN_CONVERTED_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_HEAVY_SHIELD.getDefaultStack(), "heavy_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_HEAVY_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.EVIL) .input(ResourceItemsME.BURZUM_STEEL_NUGGET) .input(ResourceItemsME.BURZUM_STEEL_NUGGET) .input(ResourceItemsME.BURZUM_STEEL_NUGGET) @@ -1096,14 +1096,14 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_PLATE)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.MORDOR_HEAVY_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_PAINTED_HEAVY_SHIELD.getDefaultStack(), "heavy_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.MORDOR_PAINTED_HEAVY_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.EVIL) .input(WeaponItemsME.MORDOR_HEAVY_SHIELD) .input(ResourceItemsME.MORDOR_BANNER_PATTERN) .criterion(hasItem(WeaponItemsME.MORDOR_HEAVY_SHIELD), conditionsFromItem(WeaponItemsME.MORDOR_HEAVY_SHIELD)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.MORDOR_PAINTED_HEAVY_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.BLACK_NUMENOREAN_TOWER_SHIELD.getDefaultStack(), "medium_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.BLACK_NUMENOREAN_TOWER_SHIELD.getDefaultStack(), "medium_shield", DispositionType.EVIL) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(Items.RED_DYE) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -1115,7 +1115,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.BLACK_NUMENOREAN_TOWER_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.URUK_HAI_HEATER_SHIELD.getDefaultStack(), "medium_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.URUK_HAI_HEATER_SHIELD.getDefaultStack(), "medium_shield", DispositionType.EVIL) .input(ResourceItemsME.CRUDE_NUGGET) .input(ResourceItemsME.CRUDE_INGOT) .input(ResourceItemsME.CRUDE_NUGGET) @@ -1127,7 +1127,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.URUK_HAI_HEATER_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.URUK_HAI_SHIELD.getDefaultStack(), "heavy_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.URUK_HAI_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.EVIL) .input(ResourceItemsME.BURZUM_STEEL_NUGGET) .input(ResourceItemsME.BURZUM_STEEL_NUGGET) .input(ResourceItemsME.BURZUM_STEEL_NUGGET) @@ -1141,28 +1141,28 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_PLATE)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.URUK_HAI_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.URUK_HAI_WHITE_HAND_SHIELD.getDefaultStack(), "heavy_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.URUK_HAI_WHITE_HAND_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.EVIL) .input(WeaponItemsME.URUK_HAI_SHIELD) .input(ResourceItemsME.ISENGARD_BANNER_PATTERN) .criterion(hasItem(WeaponItemsME.URUK_HAI_SHIELD), conditionsFromItem(WeaponItemsME.URUK_HAI_SHIELD)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.URUK_HAI_WHITE_HAND_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.URUK_HAI_WHITE_PALMPRINT_SHIELD.getDefaultStack(), "heavy_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.URUK_HAI_WHITE_PALMPRINT_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.EVIL) .input(WeaponItemsME.URUK_HAI_SHIELD) .input(ResourceItemsME.ISENGARD_BANNER_PATTERN) .criterion(hasItem(WeaponItemsME.URUK_HAI_SHIELD), conditionsFromItem(WeaponItemsME.URUK_HAI_SHIELD)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.URUK_HAI_WHITE_PALMPRINT_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.URUK_HAI_S_RUNE_SHIELD.getDefaultStack(), "heavy_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.URUK_HAI_S_RUNE_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.EVIL) .input(WeaponItemsME.URUK_HAI_SHIELD) .input(ResourceItemsME.ISENGARD_BANNER_PATTERN) .criterion(hasItem(WeaponItemsME.URUK_HAI_SHIELD), conditionsFromItem(WeaponItemsME.URUK_HAI_SHIELD)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.URUK_HAI_S_RUNE_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.URUK_HAI_SIEGE_SHIELD.getDefaultStack(), "heavy_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.URUK_HAI_SIEGE_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.EVIL) .input(ResourceItemsME.BURZUM_STEEL_NUGGET) .componentInput(new ComponentsIngredient(Ingredient.ofItems(burzumSteelShieldPlate.getItem()), burzumSteelShieldPlate.getComponentChanges())) .input(ResourceItemsME.BURZUM_STEEL_NUGGET) @@ -1176,7 +1176,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_PLATE)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.URUK_HAI_SIEGE_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GUNDABAD_WOODEN_SHIELD.getDefaultStack(), "light_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GUNDABAD_WOODEN_SHIELD.getDefaultStack(), "light_shield", DispositionType.EVIL) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(ResourceItemsME.CRUDE_INGOT) @@ -1186,7 +1186,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.CRUDE_INGOT)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.GUNDABAD_WOODEN_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GUNDABAD_PAINTED_WOODEN_SHIELD.getDefaultStack(), "light_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GUNDABAD_PAINTED_WOODEN_SHIELD.getDefaultStack(), "light_shield", DispositionType.EVIL) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(ResourceItemsME.MISTY_MOUNTAINS_ORCS_BANNER_PATTERN) @@ -1196,7 +1196,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.CRUDE_INGOT)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.GUNDABAD_PAINTED_WOODEN_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GUNDABAD_GREAT_EYE_PAINTED_WOODEN_SHIELD.getDefaultStack(), "light_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GUNDABAD_GREAT_EYE_PAINTED_WOODEN_SHIELD.getDefaultStack(), "light_shield", DispositionType.EVIL) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(ResourceItemsME.MISTY_MOUNTAINS_ORCS_BANNER_PATTERN) @@ -1206,7 +1206,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.CRUDE_INGOT)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.GUNDABAD_GREAT_EYE_PAINTED_WOODEN_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GUNDABAD_PEAKS_PAINTED_WOODEN_SHIELD.getDefaultStack(), "light_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GUNDABAD_PEAKS_PAINTED_WOODEN_SHIELD.getDefaultStack(), "light_shield", DispositionType.EVIL) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(ResourceItemsME.MISTY_MOUNTAINS_ORCS_BANNER_PATTERN) @@ -1216,7 +1216,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.CRUDE_INGOT)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.GUNDABAD_PEAKS_PAINTED_WOODEN_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GUNDABAD_REINFORCED_SHIELD.getDefaultStack(), "medium_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GUNDABAD_REINFORCED_SHIELD.getDefaultStack(), "medium_shield", DispositionType.EVIL) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(ResourceItemsME.CRUDE_NUGGET) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) @@ -1228,7 +1228,7 @@ public void generate() { conditionsFromItem(ResourceItemsME.SHIELD_BORDER)) .offerTo(exporter, Registries.ITEM.getId(WeaponItemsME.GUNDABAD_REINFORCED_SHIELD).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GUNDABAD_HEAVY_SHIELD.getDefaultStack(), "heavy_shield", Disposition.EVIL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, WeaponItemsME.GUNDABAD_HEAVY_SHIELD.getDefaultStack(), "heavy_shield", DispositionType.EVIL) .input(ResourceItemsME.BURZUM_STEEL_NUGGET) .input(ResourceItemsME.BURZUM_STEEL_NUGGET) .input(ResourceItemsME.BURZUM_STEEL_NUGGET) @@ -1244,7 +1244,7 @@ public void generate() { //endregion - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, ToolItemsME.PIPE.getDefaultStack(), "pipe", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, ToolItemsME.PIPE.getDefaultStack(), "pipe", DispositionType.NEUTRAL) .input(Items.STICK) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("wooden_slabs"))) @@ -1255,7 +1255,7 @@ public void generate() { conditionsFromItem(Items.STICK)) .offerTo(exporter, Registries.ITEM.getId(ToolItemsME.PIPE).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, ToolItemsME.CLAY_PIPE.getDefaultStack(), "pipe", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, ToolItemsME.CLAY_PIPE.getDefaultStack(), "pipe", DispositionType.NEUTRAL) .input(Items.STICK) .input(Items.TERRACOTTA) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("wooden_slabs"))) @@ -1266,7 +1266,7 @@ public void generate() { conditionsFromItem(Items.STICK)) .offerTo(exporter, Registries.ITEM.getId(ToolItemsME.CLAY_PIPE).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, ToolItemsME.RIVERBEND_PIPE.getDefaultStack(), "pipe", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, ToolItemsME.RIVERBEND_PIPE.getDefaultStack(), "pipe", DispositionType.NEUTRAL) .input(Items.STICK) .input(ResourceItemsME.BRONZE_NUGGET) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("wooden_slabs"))) @@ -1277,7 +1277,7 @@ public void generate() { conditionsFromItem(Items.STICK)) .offerTo(exporter, Registries.ITEM.getId(ToolItemsME.RIVERBEND_PIPE).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, ToolItemsME.BRIMMINGBEND_PIPE.getDefaultStack(), "pipe", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, ToolItemsME.BRIMMINGBEND_PIPE.getDefaultStack(), "pipe", DispositionType.NEUTRAL) .input(Items.STICK) .input(ResourceItemsME.BRONZE_NUGGET) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("wooden_slabs"))) @@ -1288,7 +1288,7 @@ public void generate() { conditionsFromItem(Items.STICK)) .offerTo(exporter, Registries.ITEM.getId(ToolItemsME.BRIMMINGBEND_PIPE).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, ToolItemsME.LONGBOTTOM_PIPE.getDefaultStack(), "pipe", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, ToolItemsME.LONGBOTTOM_PIPE.getDefaultStack(), "pipe", DispositionType.NEUTRAL) .input(Items.STICK) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("planks"))) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("wooden_slabs"))) @@ -1299,7 +1299,7 @@ public void generate() { conditionsFromItem(Items.STICK)) .offerTo(exporter, Registries.ITEM.getId(ToolItemsME.LONGBOTTOM_PIPE).getPath() + "_artisan"); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, new ItemStack(WeaponItemsME.WEAVER_STING), "sword", Disposition.NEUTRAL) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, new ItemStack(WeaponItemsME.WEAVER_STING), "sword", DispositionType.NEUTRAL) .input(ResourceItemsME.SPIDER_STINGER) .input(ResourceItemsME.SPIDER_STINGER) .input(Items.STICK) @@ -1310,14 +1310,14 @@ public void generate() { }; } - private void createToolSet(RegistryEntryLookup itemLookup, RecipeExporter exporter, MetalTypes metal, ItemStack outputPickaxe, ItemStack outputAxe, ItemStack outputShovel, ItemStack outputHoe, Optional rodMetal, Disposition disposition) { - createArtisanTablePickaxeRecipe(itemLookup, exporter, metal, outputPickaxe, rodMetal, disposition); - createArtisanTableAxeRecipe(itemLookup, exporter, metal, outputAxe, false, rodMetal, disposition); - createArtisanTableShovelRecipe(itemLookup, exporter, metal, outputShovel, rodMetal, disposition); - createArtisanTableHoeRecipe(itemLookup, exporter, metal, outputHoe, rodMetal, disposition); + private void createToolSet(RegistryEntryLookup itemLookup, RecipeExporter exporter, MetalTypes metal, ItemStack outputPickaxe, ItemStack outputAxe, ItemStack outputShovel, ItemStack outputHoe, Optional rodMetal, DispositionType dispositionType) { + createArtisanTablePickaxeRecipe(itemLookup, exporter, metal, outputPickaxe, rodMetal, dispositionType); + createArtisanTableAxeRecipe(itemLookup, exporter, metal, outputAxe, false, rodMetal, dispositionType); + createArtisanTableShovelRecipe(itemLookup, exporter, metal, outputShovel, rodMetal, dispositionType); + createArtisanTableHoeRecipe(itemLookup, exporter, metal, outputHoe, rodMetal, dispositionType); } - private void createArtisanTableSwordRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, MetalTypes metal, ItemStack output, boolean noble, Disposition disposition) { + private void createArtisanTableSwordRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, MetalTypes metal, ItemStack output, boolean noble, DispositionType dispositionType) { ItemStack blade = new ItemStack(ResourceItemsME.BLADE); blade.set(DataComponentTypes.TRIM, new ArmorTrim(getArmorTrimMaterialsRegistry().getOrThrow(RegistryKey.of(RegistryKeys.TRIM_MATERIAL, getMetalIdentifier(metal))), getPattern())); @@ -1332,7 +1332,7 @@ private void createArtisanTableSwordRecipe(RegistryEntryLookup itemLookup, Identifier.of(MetalTypes.GOLD.getName()))), getPattern())); } - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "sword", disposition) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "sword", dispositionType) .componentInput(new ComponentsIngredient(Ingredient.ofItems(blade.getItem()), blade.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(swordHilt.getItem()), swordHilt.getComponentChanges())) .input(Items.STICK) @@ -1341,7 +1341,7 @@ private void createArtisanTableSwordRecipe(RegistryEntryLookup itemLookup, .offerTo(exporter); } - private void createArtisanTableLongswordRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, MetalTypes metal, ItemStack output, boolean noble, Disposition disposition) { + private void createArtisanTableLongswordRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, MetalTypes metal, ItemStack output, boolean noble, DispositionType dispositionType) { ItemStack longBlade = new ItemStack(ResourceItemsME.LONG_BLADE); longBlade.set(DataComponentTypes.TRIM, new ArmorTrim(getArmorTrimMaterialsRegistry().getOrThrow(RegistryKey.of(RegistryKeys.TRIM_MATERIAL, getMetalIdentifier(metal))), getPattern())); @@ -1356,7 +1356,7 @@ private void createArtisanTableLongswordRecipe(RegistryEntryLookup itemLoo Identifier.of(MetalTypes.GOLD.getName()))), getPattern())); } - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "sword", disposition) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "sword", dispositionType) .componentInput(new ComponentsIngredient(Ingredient.ofItems(longBlade.getItem()), longBlade.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(swordHilt.getItem()), swordHilt.getComponentChanges())) .input(Items.STICK) @@ -1365,7 +1365,7 @@ private void createArtisanTableLongswordRecipe(RegistryEntryLookup itemLoo .offerTo(exporter); } - private void createArtisanTableDaggerRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, MetalTypes metal, ItemStack output, boolean noble, Disposition disposition) { + private void createArtisanTableDaggerRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, MetalTypes metal, ItemStack output, boolean noble, DispositionType dispositionType) { ItemStack shortBlade = new ItemStack(ResourceItemsME.SHORT_BLADE); shortBlade.set(DataComponentTypes.TRIM, new ArmorTrim(getArmorTrimMaterialsRegistry().getOrThrow(RegistryKey.of(RegistryKeys.TRIM_MATERIAL, getMetalIdentifier(metal))), getPattern())); @@ -1380,7 +1380,7 @@ private void createArtisanTableDaggerRecipe(RegistryEntryLookup itemLookup Identifier.of(MetalTypes.GOLD.getName()))), getPattern())); } - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "sword", disposition) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "sword", dispositionType) .componentInput(new ComponentsIngredient(Ingredient.ofItems(shortBlade.getItem()), shortBlade.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(swordHilt.getItem()), swordHilt.getComponentChanges())) .input(Items.STICK) @@ -1389,13 +1389,13 @@ private void createArtisanTableDaggerRecipe(RegistryEntryLookup itemLookup .offerTo(exporter); } - private void createArtisanTableSpearRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, MetalTypes metal, ItemStack output, boolean noble, Disposition disposition) { + private void createArtisanTableSpearRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, MetalTypes metal, ItemStack output, boolean noble, DispositionType dispositionType) { ItemStack blade = new ItemStack(ResourceItemsME.SHORT_BLADE); blade.set(DataComponentTypes.TRIM, new ArmorTrim(getArmorTrimMaterialsRegistry().getOrThrow(RegistryKey.of(RegistryKeys.TRIM_MATERIAL, getMetalIdentifier(metal))), getPattern())); if (!noble) { - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "spear", disposition) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "spear", dispositionType) .componentInput(new ComponentsIngredient(Ingredient.ofItems(blade.getItem()), blade.getComponentChanges())) .input(Items.STICK) .input(Items.STICK) @@ -1406,7 +1406,7 @@ private void createArtisanTableSpearRecipe(RegistryEntryLookup itemLookup, ItemStack rod = new ItemStack(ResourceItemsME.ROD); rod.set(DataComponentTypes.TRIM, new ArmorTrim(getArmorTrimMaterialsRegistry().getOrThrow(RegistryKey.of(RegistryKeys.TRIM_MATERIAL, Identifier.of(MetalTypes.GOLD.getName()))), getPattern())); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "spear", disposition) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "spear", dispositionType) .componentInput(new ComponentsIngredient(Ingredient.ofItems(blade.getItem()), blade.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(rod.getItem()), rod.getComponentChanges())) .input(Items.STICK) @@ -1416,8 +1416,8 @@ private void createArtisanTableSpearRecipe(RegistryEntryLookup itemLookup, } } - private void createArtisanTableBowRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, ItemStack output, Disposition disposition) { - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "bow", disposition) + private void createArtisanTableBowRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, ItemStack output, DispositionType dispositionType) { + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "bow", dispositionType) .input(Items.STICK) .input(Items.STRING) .input(Items.STICK) @@ -1429,11 +1429,11 @@ private void createArtisanTableBowRecipe(RegistryEntryLookup itemLookup, R .offerTo(exporter); } - private void createArtisanTableNobleBowRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, ItemStack output, Disposition disposition) { + private void createArtisanTableNobleBowRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, ItemStack output, DispositionType dispositionType) { ItemStack rod = new ItemStack(ResourceItemsME.ROD); rod.set(DataComponentTypes.TRIM, new ArmorTrim(getArmorTrimMaterialsRegistry().getOrThrow(RegistryKey.of(RegistryKeys.TRIM_MATERIAL, Identifier.of(MetalTypes.GOLD.getName()))), getPattern())); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "bow", disposition) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "bow", dispositionType) .input(Items.STICK) .input(Items.STRING) .componentInput(new ComponentsIngredient(Ingredient.ofItems(rod.getItem()), rod.getComponentChanges())) @@ -1445,8 +1445,8 @@ private void createArtisanTableNobleBowRecipe(RegistryEntryLookup itemLook .offerTo(exporter); } - private void createArtisanTableLongbowRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, ItemStack output, Disposition disposition) { - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "bow", disposition) + private void createArtisanTableLongbowRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, ItemStack output, DispositionType dispositionType) { + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "bow", dispositionType) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("wooden_fences"))) .input(Items.STRING) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("wooden_fences"))) @@ -1458,11 +1458,11 @@ private void createArtisanTableLongbowRecipe(RegistryEntryLookup itemLooku .offerTo(exporter); } - private void createArtisanTableNobleLongbowRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, ItemStack output, Disposition disposition) { + private void createArtisanTableNobleLongbowRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, ItemStack output, DispositionType dispositionType) { ItemStack rod = new ItemStack(ResourceItemsME.ROD); rod.set(DataComponentTypes.TRIM, new ArmorTrim(getArmorTrimMaterialsRegistry().getOrThrow(RegistryKey.of(RegistryKeys.TRIM_MATERIAL, Identifier.of(MetalTypes.GOLD.getName()))), getPattern())); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "bow", disposition) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "bow", dispositionType) .input(TagKey.of(RegistryKeys.ITEM, Identifier.of("wooden_fences"))) .input(Items.STRING) .componentInput(new ComponentsIngredient(Ingredient.ofItems(rod.getItem()), rod.getComponentChanges())) @@ -1474,12 +1474,12 @@ private void createArtisanTableNobleLongbowRecipe(RegistryEntryLookup item .offerTo(exporter); } - private void createArtisanTableCrossbowRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, ItemStack output, Disposition disposition) { + private void createArtisanTableCrossbowRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, ItemStack output, DispositionType dispositionType) { ItemStack rod = new ItemStack(ResourceItemsME.ROD); rod.set(DataComponentTypes.TRIM, new ArmorTrim(getArmorTrimMaterialsRegistry().getOrThrow(RegistryKey.of(RegistryKeys.TRIM_MATERIAL, Identifier.of(MetalTypes.IRON.getName()))), getPattern())); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "crossbow", disposition) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "crossbow", dispositionType) .input(Items.STICK) .componentInput(new ComponentsIngredient(Ingredient.ofItems(rod.getItem()), rod.getComponentChanges())) .input(Items.STICK) @@ -1492,12 +1492,12 @@ private void createArtisanTableCrossbowRecipe(RegistryEntryLookup itemLook .offerTo(exporter); } - private void createArtisanTableNobleCrossbowRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, ItemStack output, Disposition disposition) { + private void createArtisanTableNobleCrossbowRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, ItemStack output, DispositionType dispositionType) { ItemStack rod = new ItemStack(ResourceItemsME.ROD); rod.set(DataComponentTypes.TRIM, new ArmorTrim(getArmorTrimMaterialsRegistry().getOrThrow(RegistryKey.of(RegistryKeys.TRIM_MATERIAL, Identifier.of(MetalTypes.GOLD.getName()))), getPattern())); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "crossbow", disposition) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "crossbow", dispositionType) .input(Items.STICK) .componentInput(new ComponentsIngredient(Ingredient.ofItems(rod.getItem()), rod.getComponentChanges())) .input(Items.STICK) @@ -1510,7 +1510,7 @@ private void createArtisanTableNobleCrossbowRecipe(RegistryEntryLookup ite .offerTo(exporter); } - private void createArtisanTablePickaxeRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, MetalTypes metal, ItemStack output, Optional rodMetal, Disposition disposition) { + private void createArtisanTablePickaxeRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, MetalTypes metal, ItemStack output, Optional rodMetal, DispositionType dispositionType) { ItemStack pickaxeHead = new ItemStack(ResourceItemsME.PICKAXE_HEAD); pickaxeHead.set(DataComponentTypes.TRIM, new ArmorTrim(getArmorTrimMaterialsRegistry().getOrThrow(RegistryKey.of(RegistryKeys.TRIM_MATERIAL, getMetalIdentifier(metal))), getPattern())); @@ -1519,7 +1519,7 @@ private void createArtisanTablePickaxeRecipe(RegistryEntryLookup itemLooku ItemStack rod = new ItemStack(ResourceItemsME.ROD); rod.set(DataComponentTypes.TRIM, new ArmorTrim(getArmorTrimMaterialsRegistry().getOrThrow(RegistryKey.of(RegistryKeys.TRIM_MATERIAL, getMetalIdentifier(rodMetal.get()))), getPattern())); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "pickaxe", disposition) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "pickaxe", dispositionType) .componentInput(new ComponentsIngredient(Ingredient.ofItems(pickaxeHead.getItem()), pickaxeHead.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(rod.getItem()), rod.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(rod.getItem()), rod.getComponentChanges())) @@ -1527,7 +1527,7 @@ private void createArtisanTablePickaxeRecipe(RegistryEntryLookup itemLooku conditionsFromItem(pickaxeHead.getItem(), itemLookup)) .offerTo(exporter, Registries.ITEM.getId(output.getItem()).getPath() + "_" + rodMetal.get().getName() + "_artisan"); } else { - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "pickaxe", disposition) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "pickaxe", dispositionType) .componentInput(new ComponentsIngredient(Ingredient.ofItems(pickaxeHead.getItem()), pickaxeHead.getComponentChanges())) .input(Items.STICK) .input(Items.STICK) @@ -1537,7 +1537,7 @@ private void createArtisanTablePickaxeRecipe(RegistryEntryLookup itemLooku } } - private void createArtisanTableAxeRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, MetalTypes metal, ItemStack output, boolean noble, Optional rodMetal, Disposition disposition) { + private void createArtisanTableAxeRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, MetalTypes metal, ItemStack output, boolean noble, Optional rodMetal, DispositionType dispositionType) { ItemStack axeHead = new ItemStack(ResourceItemsME.AXE_HEAD); axeHead.set(DataComponentTypes.TRIM, new ArmorTrim(getArmorTrimMaterialsRegistry().getOrThrow(RegistryKey.of(RegistryKeys.TRIM_MATERIAL, getMetalIdentifier(metal))), getPattern())); @@ -1547,7 +1547,7 @@ private void createArtisanTableAxeRecipe(RegistryEntryLookup itemLookup, R ItemStack rod = new ItemStack(ResourceItemsME.ROD); rod.set(DataComponentTypes.TRIM, new ArmorTrim(getArmorTrimMaterialsRegistry().getOrThrow(RegistryKey.of(RegistryKeys.TRIM_MATERIAL, getMetalIdentifier(rodMetal.get()))), getPattern())); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "axe", disposition) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "axe", dispositionType) .componentInput(new ComponentsIngredient(Ingredient.ofItems(axeHead.getItem()), axeHead.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(rod.getItem()), rod.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(rod.getItem()), rod.getComponentChanges())) @@ -1555,7 +1555,7 @@ private void createArtisanTableAxeRecipe(RegistryEntryLookup itemLookup, R conditionsFromItem(axeHead.getItem(), itemLookup)) .offerTo(exporter, Registries.ITEM.getId(output.getItem()).getPath() + "_" + rodMetal.get().getName() + "_artisan"); } else { - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "axe", disposition) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "axe", dispositionType) .componentInput(new ComponentsIngredient(Ingredient.ofItems(axeHead.getItem()), axeHead.getComponentChanges())) .input(Items.STICK) .input(Items.STICK) @@ -1567,7 +1567,7 @@ private void createArtisanTableAxeRecipe(RegistryEntryLookup itemLookup, R ItemStack rod = new ItemStack(ResourceItemsME.ROD); rod.set(DataComponentTypes.TRIM, new ArmorTrim(getArmorTrimMaterialsRegistry().getOrThrow(RegistryKey.of(RegistryKeys.TRIM_MATERIAL, Identifier.of(MetalTypes.GOLD.getName()))), getPattern())); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "axe", disposition) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "axe", dispositionType) .componentInput(new ComponentsIngredient(Ingredient.ofItems(axeHead.getItem()), axeHead.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(rod.getItem()), rod.getComponentChanges())) .input(Items.STICK) @@ -1577,7 +1577,7 @@ private void createArtisanTableAxeRecipe(RegistryEntryLookup itemLookup, R } } - private void createArtisanTableShovelRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, MetalTypes metal, ItemStack output, Optional rodMetal, Disposition disposition) { + private void createArtisanTableShovelRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, MetalTypes metal, ItemStack output, Optional rodMetal, DispositionType dispositionType) { ItemStack shovelHead = new ItemStack(ResourceItemsME.SHOVEL_HEAD); shovelHead.set(DataComponentTypes.TRIM, new ArmorTrim(getArmorTrimMaterialsRegistry().getOrThrow(RegistryKey.of(RegistryKeys.TRIM_MATERIAL, getMetalIdentifier(metal))), getPattern())); @@ -1586,7 +1586,7 @@ private void createArtisanTableShovelRecipe(RegistryEntryLookup itemLookup ItemStack rod = new ItemStack(ResourceItemsME.ROD); rod.set(DataComponentTypes.TRIM, new ArmorTrim(getArmorTrimMaterialsRegistry().getOrThrow(RegistryKey.of(RegistryKeys.TRIM_MATERIAL, getMetalIdentifier(rodMetal.get()))), getPattern())); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "shovel", disposition) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "shovel", dispositionType) .componentInput(new ComponentsIngredient(Ingredient.ofItems(shovelHead.getItem()), shovelHead.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(rod.getItem()), rod.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(rod.getItem()), rod.getComponentChanges())) @@ -1594,7 +1594,7 @@ private void createArtisanTableShovelRecipe(RegistryEntryLookup itemLookup conditionsFromItem(shovelHead.getItem(), itemLookup)) .offerTo(exporter, Registries.ITEM.getId(output.getItem()).getPath() + "_" + rodMetal.get().getName() + "_artisan"); } else { - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "shovel", disposition) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "shovel", dispositionType) .componentInput(new ComponentsIngredient(Ingredient.ofItems(shovelHead.getItem()), shovelHead.getComponentChanges())) .input(Items.STICK) .input(Items.STICK) @@ -1604,7 +1604,7 @@ private void createArtisanTableShovelRecipe(RegistryEntryLookup itemLookup } } - private void createArtisanTableHoeRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, MetalTypes metal, ItemStack output, Optional rodMetal, Disposition disposition) { + private void createArtisanTableHoeRecipe(RegistryEntryLookup itemLookup, RecipeExporter exporter, MetalTypes metal, ItemStack output, Optional rodMetal, DispositionType dispositionType) { ItemStack hoeHead = new ItemStack(ResourceItemsME.HOE_HEAD); hoeHead.set(DataComponentTypes.TRIM, new ArmorTrim(getArmorTrimMaterialsRegistry().getOrThrow(RegistryKey.of(RegistryKeys.TRIM_MATERIAL, getMetalIdentifier(metal))), getPattern())); @@ -1614,7 +1614,7 @@ private void createArtisanTableHoeRecipe(RegistryEntryLookup itemLookup, R rod.set(DataComponentTypes.TRIM, new ArmorTrim(getArmorTrimMaterialsRegistry().getOrThrow(RegistryKey.of(RegistryKeys.TRIM_MATERIAL, getMetalIdentifier(rodMetal.get()))), getPattern())); - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "hoe", disposition) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "hoe", dispositionType) .componentInput(new ComponentsIngredient(Ingredient.ofItems(hoeHead.getItem()), hoeHead.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(rod.getItem()), rod.getComponentChanges())) .componentInput(new ComponentsIngredient(Ingredient.ofItems(rod.getItem()), rod.getComponentChanges())) @@ -1622,7 +1622,7 @@ private void createArtisanTableHoeRecipe(RegistryEntryLookup itemLookup, R conditionsFromItem(hoeHead.getItem(), itemLookup)) .offerTo(exporter, Registries.ITEM.getId(output.getItem()).getPath() + "_" + rodMetal.get().getName() + "_artisan"); } else { - ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "hoe", disposition) + ArtisanTableRecipeJsonBuilder.createArtisanRecipe(itemLookup, RecipeCategory.COMBAT, output, "hoe", dispositionType) .componentInput(new ComponentsIngredient(Ingredient.ofItems(hoeHead.getItem()), hoeHead.getComponentChanges())) .input(Items.STICK) .input(Items.STICK) diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/recipes/RecipeProvider.java b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/recipes/RecipeProvider.java index cd8a07e341..6b7fc0a0d8 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/recipes/RecipeProvider.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/datageneration/providers/recipes/RecipeProvider.java @@ -6,7 +6,6 @@ import net.minecraft.block.Blocks; import net.minecraft.data.recipe.*; import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.recipe.*; import net.minecraft.recipe.book.RecipeCategory; @@ -23,10 +22,8 @@ import net.sevenstars.middleearth.datageneration.content.models.*; import net.sevenstars.middleearth.datageneration.custom.AlloyRecipeJsonBuilder; import net.sevenstars.middleearth.datageneration.custom.AnvilShapingRecipeJsonBuilder; -import net.sevenstars.middleearth.datageneration.custom.ArtisanTableRecipeJsonBuilder; import net.sevenstars.middleearth.item.*; import net.sevenstars.middleearth.recipe.*; -import net.sevenstars.middleearth.resources.datas.Disposition; import java.util.concurrent.CompletableFuture; diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/ModEntities.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/EntitiesME.java similarity index 97% rename from middle-earth/src/main/java/net/sevenstars/middleearth/entity/ModEntities.java rename to middle-earth/src/main/java/net/sevenstars/middleearth/entity/EntitiesME.java index 34711e1530..8a182952d0 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/ModEntities.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/EntitiesME.java @@ -37,12 +37,11 @@ import net.sevenstars.middleearth.entity.spider.larva.ShelobiteLarvaEntity; import net.sevenstars.middleearth.entity.spider.scuttler.ShelobiteScuttlerEntity; import net.sevenstars.middleearth.entity.spider.spawn.SpawnOfShelobEntity; +import net.sevenstars.middleearth.registries.RegistryAliasesME; import net.sevenstars.middleearth.item.ResourceItemsME; -import net.sevenstars.middleearth.registries.RegistryAliases; import java.util.function.Supplier; - -public class ModEntities { +public class EntitiesME { // Npc public static final EntityType NPC = register("npc", EntityType.Builder.create(NpcEntity::new, SpawnGroup.CREATURE).dimensions(0.8f, 1.8f)); @@ -96,7 +95,7 @@ public static EntityType registerEntity(String name, Entit private static EntityType register(RegistryKey> key, EntityType.Builder type) { EntityType entityType = (EntityType)Registry.register(Registries.ENTITY_TYPE, key, type.build(key)); TranslationEntries.entityEntries.add(entityType); - RegistryAliases.aliases.add(new RegistryAliases.Alias(Registries.ENTITY_TYPE, entityType.getUntranslatedName())); + RegistryAliasesME.aliases.add(new RegistryAliasesME.Alias(Registries.ENTITY_TYPE, entityType.getUntranslatedName())); return entityType; } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/ModEntityAttributes.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/ModEntityAttributes.java index 0b973b13a2..bb7ae2473e 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/ModEntityAttributes.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/ModEntityAttributes.java @@ -13,11 +13,12 @@ public class ModEntityAttributes { public static final RegistryEntry DELVERS_FEAR_STRENGTH; public static final RegistryEntry CLIMBING_STRENGTH; public static final RegistryEntry DETECTION_RANGE; + public static final RegistryEntry WIDTH_SCALE; private static RegistryEntry register(String name, double defaultValue, double minValue , double MaxValue, boolean tracked) { - Identifier id = Identifier.of(MiddleEarth.MOD_ID, name); + Identifier id = MiddleEarth.of(name); EntityAttribute attribute = new ClampedEntityAttribute(id.toTranslationKey(), defaultValue, minValue, MaxValue).setTracked(tracked); - return Registry.registerReference(Registries.ATTRIBUTE, Identifier.of(MiddleEarth.MOD_ID, name),attribute); + return Registry.registerReference(Registries.ATTRIBUTE, id, attribute); } public static void register() { @@ -29,5 +30,6 @@ public static void register() { DELVERS_FEAR_STRENGTH = register("delvers_fear_strength", 0.0, 0.0, Double.MAX_VALUE, true); CLIMBING_STRENGTH = register("climbing_strength", 0.0, 0.0, Double.MAX_VALUE, true); DETECTION_RANGE = register("detection_range", 1.0, 0.1, 1.0, true); + WIDTH_SCALE = register("width_scale", 1.0, 0.1, 2.0, true); } } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/ModEntityModelLayers.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/ModEntityModelLayers.java index 7a300445c1..e631d97c99 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/ModEntityModelLayers.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/ModEntityModelLayers.java @@ -27,6 +27,7 @@ import net.sevenstars.middleearth.entity.beasts.warg.features.*; import net.sevenstars.middleearth.entity.npcs.NpcEntityModel; import net.sevenstars.middleearth.entity.npcs.features.ear.EarModel; +import net.sevenstars.middleearth.entity.npcs.features.feet.FeetModel; import net.sevenstars.middleearth.entity.npcs.features.hair.HairModel; import net.sevenstars.middleearth.entity.npcs.features.nose.NoseModel; import net.sevenstars.middleearth.entity.spider.EnwebbedModel; @@ -41,7 +42,9 @@ public final class ModEntityModelLayers { public static final EntityModelLayer NPC = registerEntityModelLayer("npc", NpcEntityModel.getTexturedModelData(Dilation.NONE)); public static final EntityModelLayer NPC_ENTITY_HAIR = registerEntityModelLayer("npc_entity_hair", HairModel.getTexturedModelData()); public static final EntityModelLayer NPC_ENTITY_EAR = registerEntityModelLayer("npc_entity_ear", EarModel.getTexturedModelData()); - public static final EntityModelLayer NPC_ENTITY_NOSE= registerEntityModelLayer("npc_entity_nose", NoseModel.getTexturedModelData()); + public static final EntityModelLayer NPC_ENTITY_NOSE = registerEntityModelLayer("npc_entity_nose", NoseModel.getTexturedModelData()); + public static final EntityModelLayer NPC_ENTITY_FEET = registerEntityModelLayer("npc_entity_feet", FeetModel.getTexturedModelData()); + // endregion public static final EntityModelLayer BROADHOOF_GOAT = ModEntityModelLayers.registerEntityModelLayer("broadhoof_goat", BroadhoofGoatModel.getTexturedModelData()); public static final EntityModelLayer BROADHOOF_GOAT_ARMOR = ModEntityModelLayers.registerEntityModelLayer("broadhoof_goat_armor", BroadhoofGoatArmorModel.getTexturedModelData()); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/ModTrackedDataHandlerRegistry.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/ModTrackedDataHandlerRegistry.java index 1808e1a830..267a7347f6 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/ModTrackedDataHandlerRegistry.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/ModTrackedDataHandlerRegistry.java @@ -1,11 +1,7 @@ package net.sevenstars.middleearth.entity; import net.fabricmc.fabric.api.object.builder.v1.entity.FabricTrackedDataRegistry; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.data.DataTracker; -import net.minecraft.entity.data.TrackedData; import net.minecraft.entity.data.TrackedDataHandler; -import net.minecraft.entity.data.TrackedDataHandlerRegistry; import net.minecraft.network.codec.PacketCodecs; import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.util.Identifier; diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/TestNpcEntity.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/TestNpcEntity.java index 189f7fe667..8c5c959557 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/TestNpcEntity.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/TestNpcEntity.java @@ -29,13 +29,13 @@ import net.sevenstars.middleearth.exceptions.FactionIdentifierException; import net.sevenstars.middleearth.item.items.weapons.ranged.CustomLongbowWeaponItem; import net.sevenstars.middleearth.resources.StateSaverAndLoader; -import net.sevenstars.middleearth.resources.datas.Disposition; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; import net.sevenstars.middleearth.resources.datas.factions.Faction; import net.sevenstars.middleearth.resources.datas.factions.FactionLookup; import net.sevenstars.middleearth.resources.datas.npcs.NpcData; import net.sevenstars.middleearth.resources.datas.npcs.NpcUtil; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcRank; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedGearData; +import net.sevenstars.middleearth.resources.datas.common.NpcRank; import net.sevenstars.middleearth.resources.datas.races.Race; import net.sevenstars.middleearth.resources.datas.races.RaceLookup; import net.sevenstars.middleearth.resources.persistent_datas.PlayerData; @@ -45,7 +45,7 @@ import java.util.function.Predicate; public class TestNpcEntity extends PathAwareEntity implements RangedAttackMob { - protected Disposition disposition; + protected DispositionType dispositionType; private Identifier raceId; private Item bow; private final CustomBowAttackGoal bowAttackGoal = new CustomBowAttackGoal(this, 1.0, 16, 30.0f); @@ -80,12 +80,12 @@ public EntityData initialize(ServerWorldAccess world, LocalDifficulty difficulty protected void initGoals() { Identifier factionId = getFactionId(); if(factionId == null) - disposition = Disposition.NEUTRAL; + dispositionType = DispositionType.NEUTRAL; else { try { - disposition = FactionLookup.getFactionById(getWorld(), factionId).getDisposition(); + dispositionType = FactionLookup.getFactionById(getWorld(), factionId).getDisposition(); } catch (FactionIdentifierException e) { - disposition = Disposition.NEUTRAL; // Attacks everyone, no judgement made + dispositionType = DispositionType.NEUTRAL; // Attacks everyone, no judgement made } } @@ -120,8 +120,8 @@ public void updateAttackType() { } } - public Disposition getDisposition(){ - return disposition; + public DispositionType getDisposition(){ + return dispositionType; } public Item getBow(){ return this.bow; @@ -149,10 +149,10 @@ public boolean canTarget(LivingEntity target) { if(player.isCreative()){ return false; } - if(disposition != null){ + if(dispositionType != null){ PlayerData data = StateSaverAndLoader.getPlayerState(player); if(data != null){ - return PlayerDataService.getPlayerDisposition(player, player.getWorld()) == disposition; + return PlayerDataService.getPlayerDisposition(player, player.getWorld()) == dispositionType; } } } @@ -301,8 +301,8 @@ protected void tryToEquipGears(NpcRank npcRank, Identifier raceId, Identifier fa NpcData data = faction.getRandomGear(getWorld(), npcRank, race); if(data == null) return; - NpcGearData gearData = data.getGear(); - NpcUtil.equipAll(this, gearData); + WeightedGearData weightedGearData = data.getGear(); + NpcUtil.equipAll(this, weightedGearData); } catch (FactionIdentifierException e) { MiddleEarth.LOGGER.logError("TestNpcEntity::Couldn't find faction registry with [%s] for rank [%s]".formatted(factionId, npcRank.toString())); throw new RuntimeException(e); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/AbstractBeastEntity.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/AbstractBeastEntity.java index beb9962caf..b6c0dd146e 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/AbstractBeastEntity.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/AbstractBeastEntity.java @@ -1,15 +1,11 @@ package net.sevenstars.middleearth.entity.beasts; import net.minecraft.advancement.criterion.Criteria; -import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.component.DataComponentTypes; -import net.minecraft.component.type.AttributeModifiersComponent; -import net.minecraft.component.type.EquippableComponent; import net.minecraft.component.type.FoodComponent; import net.minecraft.entity.*; import net.minecraft.entity.ai.pathing.EntityNavigation; -import net.minecraft.entity.ai.pathing.MobNavigation; import net.minecraft.entity.attribute.EntityAttribute; import net.minecraft.entity.attribute.EntityAttributes; import net.minecraft.entity.damage.DamageSource; @@ -24,7 +20,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.registry.entry.RegistryEntry; -import net.minecraft.registry.tag.ItemTags; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.server.world.ServerWorld; import net.minecraft.sound.SoundEvents; @@ -32,21 +27,16 @@ import net.minecraft.storage.WriteView; import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.Vec2f; import net.minecraft.util.math.Vec3d; import net.minecraft.util.math.random.Random; import net.minecraft.world.World; import net.sevenstars.middleearth.entity.ai.brain.MemoryModulesME; import net.sevenstars.middleearth.entity.npcs.NpcEntity; -import net.sevenstars.middleearth.resources.datas.Disposition; -import net.sevenstars.middleearth.resources.datas.RaceType; -import net.sevenstars.middleearth.utils.ItemTagsME; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; +import net.sevenstars.middleearth.resources.datas.common.RaceType; import java.util.List; -import java.util.UUID; public abstract class AbstractBeastEntity extends AbstractHorseEntity { public static final TrackedData CHARGING = DataTracker.registerData(AbstractBeastEntity.class, TrackedDataHandlerRegistry.BOOLEAN); @@ -141,7 +131,7 @@ protected void readCustomData(ReadView view) { // endregion // region Conditions - public abstract Disposition getDisposition(); + public abstract DispositionType getDisposition(); public abstract List getCompatibleRaces(); @@ -395,7 +385,7 @@ public void tryBonding(PlayerEntity player) { } } - protected void tameBeast(PlayerEntity player) { + public void tameBeast(PlayerEntity player) { if (player instanceof ServerPlayerEntity) { this.setOwner(player); this.setTame(true); @@ -403,6 +393,11 @@ protected void tameBeast(PlayerEntity player) { } } + public void tameBeast(LivingEntity livingEntity) { + this.setOwner(livingEntity); + this.setTame(true); + } + @Override public ActionResult interactMob(PlayerEntity player, Hand hand) { ItemStack itemStack = player.getStackInHand(hand); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/broadhoof/BroadhoofGoatEntity.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/broadhoof/BroadhoofGoatEntity.java index 8a6c9410bf..5d90e3681a 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/broadhoof/BroadhoofGoatEntity.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/broadhoof/BroadhoofGoatEntity.java @@ -41,13 +41,13 @@ import net.minecraft.world.ServerWorldAccess; import net.minecraft.world.World; import net.sevenstars.middleearth.config.ModServerConfigs; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.sevenstars.middleearth.entity.beasts.AbstractBeastEntity; import net.sevenstars.middleearth.entity.goals.BeastRevengeGoal; import net.sevenstars.middleearth.entity.goals.ChargeAttackGoal; import net.sevenstars.middleearth.entity.npcs.NpcEntity; -import net.sevenstars.middleearth.resources.datas.Disposition; -import net.sevenstars.middleearth.resources.datas.RaceType; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; +import net.sevenstars.middleearth.resources.datas.common.RaceType; import net.sevenstars.middleearth.utils.PlayerUtil; import org.jetbrains.annotations.Nullable; @@ -69,7 +69,7 @@ public class BroadhoofGoatEntity extends AbstractBeastEntity { private static final TrackedData BRUSHED_BEARD = DataTracker.registerData(BroadhoofGoatEntity.class, TrackedDataHandlerRegistry.BOOLEAN); private static final TrackedData MOUNTABLE = DataTracker.registerData(BroadhoofGoatEntity.class, TrackedDataHandlerRegistry.BOOLEAN); public final AnimationState jumpAnimationState = new AnimationState(); - private static final EntityDimensions BABY_BASE_DIMENSIONS = ModEntities.BROADHOOF_GOAT.getDimensions().scaled(0.5f); + private static final EntityDimensions BABY_BASE_DIMENSIONS = EntitiesME.BROADHOOF_GOAT.getDimensions().scaled(0.5f); public BroadhoofGoatEntity(EntityType entityType, World world) { @@ -154,8 +154,8 @@ protected static double getChildMovementSpeedBonus(DoubleSupplier randomDoubleGe } @Override - public Disposition getDisposition() { - return Disposition.GOOD; + public DispositionType getDisposition() { + return DispositionType.GOOD; } @Override @@ -233,7 +233,7 @@ protected Vec3d getPassengerAttachmentPos(Entity passenger, EntityDimensions dim @Nullable public PassiveEntity createChild(ServerWorld world, PassiveEntity entity) { BroadhoofGoatEntity broadhoofEntity = (BroadhoofGoatEntity)entity; - BroadhoofGoatEntity broadhoofEntity2 = ModEntities.BROADHOOF_GOAT.create(world, SpawnReason.BREEDING); + BroadhoofGoatEntity broadhoofEntity2 = EntitiesME.BROADHOOF_GOAT.create(world, SpawnReason.BREEDING); if (broadhoofEntity2 != null) { int i = this.random.nextInt(9); BroadhoofGoatVariant broadhoofVariant = i < 4 ? this.getVariant() : (i < 8 ? broadhoofEntity.getVariant() : Util.getRandom(BroadhoofGoatVariant.values(), this.random)); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/broadhoof/BroadhoofGoatModel.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/broadhoof/BroadhoofGoatModel.java index 4c91556217..8c24d5f286 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/broadhoof/BroadhoofGoatModel.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/broadhoof/BroadhoofGoatModel.java @@ -4,7 +4,6 @@ import net.minecraft.client.render.entity.animation.Animation; import net.minecraft.client.render.entity.model.EntityModel; import net.minecraft.client.render.entity.model.EntityModelPartNames; -import net.sevenstars.of_beasts_and_wild_things.entity.pheasant.PheasantEntityAnimations; public class BroadhoofGoatModel extends EntityModel { private final ModelPart broadhoofGoat; diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/cave_troll/CaveTrollEntity.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/cave_troll/CaveTrollEntity.java index 3329056965..56a68441cc 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/cave_troll/CaveTrollEntity.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/cave_troll/CaveTrollEntity.java @@ -44,8 +44,8 @@ import net.sevenstars.middleearth.entity.ai.brain.MemoryModulesME; import net.sevenstars.middleearth.entity.beasts.AbstractBeastEntity; import net.sevenstars.middleearth.entity.npcs.NpcEntity; -import net.sevenstars.middleearth.resources.datas.Disposition; -import net.sevenstars.middleearth.resources.datas.RaceType; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; +import net.sevenstars.middleearth.resources.datas.common.RaceType; import net.sevenstars.middleearth.utils.PlayerUtil; import org.jetbrains.annotations.Nullable; @@ -211,7 +211,7 @@ public boolean isMountable() { // This method only determines whether the entity } @Override - protected void tameBeast(PlayerEntity player) { + public void tameBeast(PlayerEntity player) { if (player instanceof ServerPlayerEntity) { this.setTameness(75); this.stopSleeping(); @@ -623,8 +623,8 @@ public Brain getBrain() { } @Override - public Disposition getDisposition() { - return Disposition.EVIL; + public DispositionType getDisposition() { + return DispositionType.EVIL; } @Override diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/great_horn/GreatHornEntity.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/great_horn/GreatHornEntity.java index 1920408fa1..c237903634 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/great_horn/GreatHornEntity.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/great_horn/GreatHornEntity.java @@ -36,15 +36,17 @@ import net.minecraft.world.ServerWorldAccess; import net.minecraft.world.World; import net.sevenstars.middleearth.config.ModServerConfigs; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.sevenstars.middleearth.entity.ModTrackedDataHandlerRegistry; import net.sevenstars.middleearth.entity.beasts.AbstractBeastEntity; import net.sevenstars.middleearth.entity.goals.BowAtEntityGoal; import net.sevenstars.middleearth.entity.goals.ChargeAttackGoal; import net.sevenstars.middleearth.entity.goals.SmartFleeEntityGoal; import net.sevenstars.middleearth.entity.goals.interfaces.Evader; -import net.sevenstars.middleearth.resources.datas.Disposition; -import net.sevenstars.middleearth.resources.datas.RaceType; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; +import net.sevenstars.middleearth.registries.content.greathornvariants.GreatHornVariantRegistry; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; +import net.sevenstars.middleearth.resources.datas.common.RaceType; import net.sevenstars.middleearth.resources.datas.races.RaceUtil; import net.sevenstars.middleearth.sound.ModSounds; import net.sevenstars.middleearth.utils.ItemTagsME; @@ -72,7 +74,7 @@ public class GreatHornEntity extends AbstractBeastEntity implements Evader { public final AnimationState gallopAnimationState = new AnimationState(); public final AnimationState bowAnimationState = new AnimationState(); public final AnimationState attackAnimationState = new AnimationState(); - private static final EntityDimensions BABY_BASE_DIMENSIONS = ModEntities.GREAT_HORN.getDimensions().scaled(0.5f); + private static final EntityDimensions BABY_BASE_DIMENSIONS = EntitiesME.GREAT_HORN.getDimensions().scaled(0.5f); protected int attackAnimationCooldown = 0; protected int bowAnimationTimeout = 0; @@ -124,7 +126,7 @@ protected void initGoals() { @Override protected void initDataTracker(DataTracker.Builder builder) { super.initDataTracker(builder); - RegistryEntry greatHornVariantRegistryEntry = Variants.getOrDefaultOrThrow(this.getRegistryManager(), GreatHornVariants.DEFAULT); + RegistryEntry greatHornVariantRegistryEntry = Variants.getOrDefaultOrThrow(this.getRegistryManager(), GreatHornVariantRegistry.DEFAULT); builder.add(BOW, 0); builder.add(BLUE_SADDLE, false); builder.add(MOUNTABLE, true); @@ -142,7 +144,7 @@ protected void writeCustomData(WriteView view) { @Override protected void readCustomData(ReadView view) { super.readCustomData(view); - Variants.readVariantFromNbt(view, GreatHornVariants.KEY).ifPresent(this::setVariant); + Variants.readVariantFromNbt(view, DynamicRegistriesME.GREAT_HORN_VARIANTS).ifPresent(this::setVariant); this.dataTracker.set(MOUNTABLE, ModServerConfigs.ENABLE_MOUNT_BROADHOOF_GOAT); } @@ -159,8 +161,8 @@ protected static double getChildMovementSpeedBonus(DoubleSupplier randomDoubleGe } @Override - public Disposition getDisposition() { - return Disposition.GOOD; + public DispositionType getDisposition() { + return DispositionType.GOOD; } @Override @@ -238,7 +240,7 @@ protected Vec3d getPassengerAttachmentPos(Entity passenger, EntityDimensions dim @Override @Nullable public PassiveEntity createChild(ServerWorld world, PassiveEntity entity) { - GreatHornEntity greatHornEntity2 = ModEntities.GREAT_HORN.create(world, SpawnReason.BREEDING); + GreatHornEntity greatHornEntity2 = EntitiesME.GREAT_HORN.create(world, SpawnReason.BREEDING); if (greatHornEntity2 != null) { this.setChildAttributes(entity, greatHornEntity2); if (this.random.nextBoolean()) { @@ -495,7 +497,7 @@ public EntityData initialize(ServerWorldAccess world, LocalDifficulty difficulty if (entityData instanceof GreatHornData greatHornData) { this.setVariant(greatHornData.variant); } else { - Optional> optional = Variants.select(SpawnContext.of(world, this.getBlockPos()), GreatHornVariants.KEY); + Optional> optional = Variants.select(SpawnContext.of(world, this.getBlockPos()), DynamicRegistriesME.GREAT_HORN_VARIANTS); if (optional.isPresent()) { this.setVariant(optional.get()); entityData = new GreatHornData(optional.get()); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/great_horn/GreatHornVariant.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/great_horn/GreatHornVariant.java index 7b6f3c679e..73c3b03569 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/great_horn/GreatHornVariant.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/great_horn/GreatHornVariant.java @@ -12,6 +12,7 @@ import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.registry.entry.RegistryFixedCodec; import net.minecraft.util.AssetInfo; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; import java.util.List; @@ -24,9 +25,9 @@ public record GreatHornVariant(GreatHornAssetInfo assetInfo, SpawnConditionSelec .apply(instance, GreatHornVariant::new) ); - public static final Codec> ENTRY_CODEC = RegistryFixedCodec.of(GreatHornVariants.KEY); + public static final Codec> ENTRY_CODEC = RegistryFixedCodec.of(DynamicRegistriesME.GREAT_HORN_VARIANTS); - public static final PacketCodec> PACKET_CODEC = PacketCodecs.registryEntry(GreatHornVariants.KEY); + public static final PacketCodec> PACKET_CODEC = PacketCodecs.registryEntry(DynamicRegistriesME.GREAT_HORN_VARIANTS); private GreatHornVariant(GreatHornAssetInfo assetInfo) { this(assetInfo, SpawnConditionSelectors.EMPTY); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/great_horn/GreatHornVariants.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/great_horn/GreatHornVariants.java deleted file mode 100644 index 71a5f6fb84..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/great_horn/GreatHornVariants.java +++ /dev/null @@ -1,62 +0,0 @@ -package net.sevenstars.middleearth.entity.beasts.great_horn; - -import net.fabricmc.fabric.api.event.registry.DynamicRegistries; -import net.minecraft.entity.spawn.BiomeSpawnCondition; -import net.minecraft.entity.spawn.SpawnConditionSelectors; -import net.minecraft.registry.Registerable; -import net.minecraft.registry.Registry; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.RegistryKeys; -import net.minecraft.registry.entry.RegistryEntryList; -import net.minecraft.registry.tag.TagKey; -import net.minecraft.util.AssetInfo; -import net.minecraft.util.Identifier; -import net.minecraft.world.biome.Biome; -import net.sevenstars.middleearth.MiddleEarth; - -public class GreatHornVariants { - public final static String KEY_PATH = "great_horn_variants"; - private static final String TEXTURE_PATH = "entities/great_horn/"; - private static final String ENTITY_NAME = "_great_horn"; - public static final RegistryKey> KEY = RegistryKey.ofRegistry(Identifier.of(MiddleEarth.MOD_ID, KEY_PATH)); - - public static final RegistryKey BROWN = of("brown"); - public static final RegistryKey TEMPERATE = of("temperate"); - public static final RegistryKey WARM = of("warm"); - public static final RegistryKey COLD = of("cold"); - public static final RegistryKey DEFAULT = BROWN; - - private static RegistryKey of(String id) { - return RegistryKey.of(GreatHornVariants.KEY, Identifier.of(MiddleEarth.MOD_ID, id)); - } - - private static void register(Registerable registry, RegistryKey key, String textureName, TagKey biomeTag, int priority) { - register(registry, key, textureName, createSpawnConditions(registry.getRegistryLookup(RegistryKeys.BIOME).getOrThrow(biomeTag), priority)); - } - - private static void register(Registerable registry, RegistryKey key, String textureName, SpawnConditionSelectors spawnConditions) { - registry.register(key, new GreatHornVariant(new GreatHornVariant.GreatHornAssetInfo( - new AssetInfo(Identifier.of(MiddleEarth.MOD_ID, TEXTURE_PATH + textureName + ENTITY_NAME))), - spawnConditions)); - } - - private static SpawnConditionSelectors createSpawnConditions(RegistryEntryList requiredBiomes, int priority) { - return SpawnConditionSelectors.createSingle(new BiomeSpawnCondition(requiredBiomes), priority); - } - - private static SpawnConditionSelectors createSpawnConditions(RegistryEntryList requiredBiomes, int a, int priority) { - return SpawnConditionSelectors.createSingle(new BiomeSpawnCondition(requiredBiomes), priority); - } - - public static void bootstrap(Registerable registry) { - register(registry, BROWN, "brown", SpawnConditionSelectors.createFallback(0)); - register(registry, TEMPERATE, "temperate", SpawnConditionSelectors.createFallback(0)); - register(registry, WARM, "warm", TagKey.of(RegistryKeys.BIOME, Identifier.of(MiddleEarth.MOD_ID, "spawns_warm_variant_great_horn")), 0); - register(registry, COLD, "cold", TagKey.of(RegistryKeys.BIOME, Identifier.of(MiddleEarth.MOD_ID, "spawns_cold_variant_great_horn")), 1); - } - - public static void register(){ - MiddleEarth.LOGGER.logDebugMsg("Registering Great Horn Variants for " + MiddleEarth.MOD_ID); - DynamicRegistries.registerSynced(KEY, GreatHornVariant.CODEC); - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/trolls/TrollEntity.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/trolls/TrollEntity.java index 05ea408c11..6a714508de 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/trolls/TrollEntity.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/trolls/TrollEntity.java @@ -7,14 +7,10 @@ import net.minecraft.entity.data.DataTracker; import net.minecraft.entity.data.TrackedData; import net.minecraft.entity.data.TrackedDataHandlerRegistry; -import net.minecraft.entity.mob.MobEntity; import net.minecraft.entity.passive.AnimalEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.inventory.StackWithSlot; import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.nbt.NbtList; import net.minecraft.particle.ParticleTypes; import net.minecraft.registry.RegistryKeys; import net.minecraft.registry.tag.TagKey; @@ -26,12 +22,12 @@ import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.sevenstars.middleearth.entity.beasts.AbstractBeastEntity; import net.sevenstars.middleearth.entity.goals.*; import net.sevenstars.middleearth.entity.projectile.boulder.BoulderEntity; -import net.sevenstars.middleearth.resources.datas.Disposition; -import net.sevenstars.middleearth.resources.datas.RaceType; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; +import net.sevenstars.middleearth.resources.datas.common.RaceType; import net.sevenstars.middleearth.resources.persistent_datas.PlayerDataService; import java.util.Iterator; @@ -164,8 +160,8 @@ public boolean canBeLeashed() { } @Override - public Disposition getDisposition() { - return Disposition.EVIL; + public DispositionType getDisposition() { + return DispositionType.EVIL; } @Override @@ -324,7 +320,7 @@ public void throwAttack() { this.setThrowing(false); Vec3d rotationVec = this.getRotationVec(1.0f); - BoulderEntity boulder = new BoulderEntity(ModEntities.BOULDER, this.getWorld()); + BoulderEntity boulder = new BoulderEntity(EntitiesME.BOULDER, this.getWorld()); double x = target.getX() - this.getX(); double y = target.getBodyY(0.3333333333333333) - boulder.getY(); double z = target.getZ() - this.getZ(); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/trolls/stone/StoneTrollEntity.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/trolls/stone/StoneTrollEntity.java index 5cf946dfe3..7159b3677b 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/trolls/stone/StoneTrollEntity.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/trolls/stone/StoneTrollEntity.java @@ -5,15 +5,12 @@ import net.minecraft.entity.EquipmentSlot; import net.minecraft.entity.ai.goal.AvoidSunlightGoal; import net.minecraft.entity.ai.goal.EscapeSunlightGoal; -import net.minecraft.entity.attribute.EntityAttributeModifier; -import net.minecraft.entity.attribute.EntityAttributes; import net.minecraft.entity.conversion.EntityConversionContext; import net.minecraft.entity.damage.DamageSource; import net.minecraft.entity.data.DataTracker; import net.minecraft.entity.data.TrackedData; import net.minecraft.entity.data.TrackedDataHandlerRegistry; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NbtCompound; import net.minecraft.particle.ParticleTypes; import net.minecraft.registry.RegistryKey; import net.minecraft.registry.RegistryKeys; @@ -28,11 +25,9 @@ import net.minecraft.world.World; import net.minecraft.world.biome.Biome; import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.sevenstars.middleearth.entity.beasts.trolls.TrollEntity; -import net.sevenstars.middleearth.entity.beasts.trolls.petrified.PetrifiedTrollEntity; import net.sevenstars.middleearth.entity.goals.BeastTargetPlayerGoal; -import net.sevenstars.middleearth.resources.datas.Disposition; import java.util.List; @@ -153,7 +148,7 @@ public void tickMovement() { public void turnToStone() { this.setAiDisabled(true); this.convertTo( - ModEntities.PETRIFIED_TROLL, + EntitiesME.PETRIFIED_TROLL, EntityConversionContext.create(this, true, false), troll -> {} ); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/warg/WargEntity.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/warg/WargEntity.java index 028f7251ce..4c362fa497 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/warg/WargEntity.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/beasts/warg/WargEntity.java @@ -35,12 +35,12 @@ import net.minecraft.world.ServerWorldAccess; import net.minecraft.world.World; import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.sevenstars.middleearth.entity.beasts.AbstractBeastEntity; import net.sevenstars.middleearth.entity.goals.*; import net.sevenstars.middleearth.entity.npcs.NpcEntity; -import net.sevenstars.middleearth.resources.datas.Disposition; -import net.sevenstars.middleearth.resources.datas.RaceType; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; +import net.sevenstars.middleearth.resources.datas.common.RaceType; import net.sevenstars.middleearth.resources.datas.races.RaceUtil; import org.jetbrains.annotations.Nullable; @@ -58,7 +58,7 @@ public class WargEntity extends AbstractBeastEntity { private static final float MAX_HEALTH_BONUS = WargEntity.getChildHealthBonus(max -> max - 1); private static final TrackedData VARIANT = DataTracker.registerData(WargEntity.class, TrackedDataHandlerRegistry.INTEGER); public int idleAnimationTimeout = this.random.nextInt(600) + 1700; - private static final EntityDimensions BABY_BASE_DIMENSIONS = ModEntities.WARG.getDimensions().scaled(0.5f); + private static final EntityDimensions BABY_BASE_DIMENSIONS = EntitiesME.WARG.getDimensions().scaled(0.5f); public WargEntity(EntityType entityType, World world) { super(entityType, world); @@ -191,7 +191,7 @@ else if (!this.getWorld().isClient && this.getBreedingAge() == 0 && this.canEat( @Nullable public PassiveEntity createChild(ServerWorld world, PassiveEntity entity) { WargEntity wargEntity = (WargEntity) entity; - WargEntity wargEntity2 = ModEntities.WARG.create(world, SpawnReason.BREEDING); + WargEntity wargEntity2 = EntitiesME.WARG.create(world, SpawnReason.BREEDING); if (wargEntity2 != null) { int i = this.random.nextInt(9); WargVariant wargVariant = i < 4 ? this.getVariant() : (i < 8 ? wargEntity.getVariant() : Util.getRandom(WargVariant.values(), this.random)); @@ -209,8 +209,8 @@ protected void setChildAttributes(PassiveEntity other, AbstractHorseEntity child } @Override - public Disposition getDisposition() { - return Disposition.EVIL; + public DispositionType getDisposition() { + return DispositionType.EVIL; } @Override diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/goals/BeastTargetPlayerGoal.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/goals/BeastTargetPlayerGoal.java index 0bcc3e019f..992487404e 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/goals/BeastTargetPlayerGoal.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/goals/BeastTargetPlayerGoal.java @@ -5,17 +5,17 @@ import net.minecraft.server.world.ServerWorld; import net.minecraft.world.Difficulty; import net.sevenstars.middleearth.entity.beasts.AbstractBeastEntity; -import net.sevenstars.middleearth.resources.datas.Disposition; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; import net.sevenstars.middleearth.resources.persistent_datas.PlayerDataService; public class BeastTargetPlayerGoal extends ActiveTargetGoal { AbstractBeastEntity mob; - Disposition beastDisposition; + DispositionType beastDispositionType; - public BeastTargetPlayerGoal(AbstractBeastEntity mob, Disposition beastDisposition) { + public BeastTargetPlayerGoal(AbstractBeastEntity mob, DispositionType beastDispositionType) { super(mob, PlayerEntity.class, true); this.mob = mob; - this.beastDisposition = beastDisposition; + this.beastDispositionType = beastDispositionType; } @Override @@ -34,8 +34,8 @@ private boolean canTargetMob(){ if(player == null || mob.getWorld().getDifficulty() == Difficulty.PEACEFUL || mob.isTame() || player == mob.getOwner()){ return false; } - if(beastDisposition != null){ - return PlayerDataService.getPlayerDisposition(player, player.getWorld()) != beastDisposition; + if(beastDispositionType != null){ + return PlayerDataService.getPlayerDisposition(player, player.getWorld()) != beastDispositionType; } return true; } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/goals/ChargeAttackGoal.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/goals/ChargeAttackGoal.java index 6a3db56a1e..61be340ae9 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/goals/ChargeAttackGoal.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/goals/ChargeAttackGoal.java @@ -6,25 +6,25 @@ import net.minecraft.entity.ai.pathing.PathNode; import net.minecraft.entity.player.PlayerEntity; import net.sevenstars.middleearth.entity.beasts.AbstractBeastEntity; -import net.sevenstars.middleearth.resources.datas.Disposition; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; import net.sevenstars.middleearth.resources.persistent_datas.PlayerDataService; public class ChargeAttackGoal extends Goal { private AbstractBeastEntity mob; private final int MAX_COOLDOWN; private int checkCanNavigateCooldown; - private Disposition beastDisposition; + private DispositionType beastDispositionType; - public ChargeAttackGoal(AbstractBeastEntity mob, Disposition beastDisposition, int maxCooldown) { + public ChargeAttackGoal(AbstractBeastEntity mob, DispositionType beastDispositionType, int maxCooldown) { this.mob = mob; - this.beastDisposition = beastDisposition; + this.beastDispositionType = beastDispositionType; this.MAX_COOLDOWN = maxCooldown; } @Override public boolean canStart() { if(this.mob.getTarget() != null && this.mob.getTarget() instanceof PlayerEntity player) { - return PlayerDataService.getPlayerDisposition(player, player.getWorld()) == beastDisposition; + return PlayerDataService.getPlayerDisposition(player, player.getWorld()) == beastDispositionType; } return this.mob.getChargeTimeout() == 0 && diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/model/ModEntityModels.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/model/ModEntityModels.java index eec95e0513..62b58e2877 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/model/ModEntityModels.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/model/ModEntityModels.java @@ -11,6 +11,7 @@ import net.sevenstars.middleearth.entity.beasts.trolls.snow.SnowTrollModel; import net.sevenstars.middleearth.entity.npcs.NpcEntityModel; import net.sevenstars.middleearth.entity.npcs.features.ear.EarModel; +import net.sevenstars.middleearth.entity.npcs.features.feet.FeetModel; import net.sevenstars.middleearth.entity.npcs.features.hair.HairModel; import net.sevenstars.middleearth.entity.npcs.features.nose.NoseModel; import net.sevenstars.middleearth.entity.spider.EnwebbedModel; @@ -32,6 +33,7 @@ public static Map getModels() { builder.put(ModEntityModelLayers.NPC_ENTITY_HAIR, HairModel.getTexturedModelData()); builder.put(ModEntityModelLayers.NPC_ENTITY_EAR, EarModel.getTexturedModelData()); builder.put(ModEntityModelLayers.NPC_ENTITY_NOSE, NoseModel.getTexturedModelData()); + builder.put(ModEntityModelLayers.NPC_ENTITY_FEET, FeetModel.getTexturedModelData()); builder.put(ModEntityModelLayers.SNOW_TROLL, SnowTrollModel.getTexturedModelData()); builder.put(ModEntityModelLayers.SHELOBITE_LARVA, ShelobiteLarvaModel.getTexturedModelData()); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcEntity.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcEntity.java index f9e241cba0..87018685bf 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcEntity.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcEntity.java @@ -45,21 +45,22 @@ import net.sevenstars.api.entity.ai.brain.MemoryModulesAPI; import net.sevenstars.api.entity.ai.brain.SchedulesAPI; import net.sevenstars.middleearth.block.special.structureManager.StructureManagerBlockEntity; +import net.sevenstars.middleearth.entity.ModEntityAttributes; import net.sevenstars.middleearth.entity.ModTrackedDataHandlerRegistry; import net.sevenstars.middleearth.entity.ai.brain.MemoryModulesME; import net.sevenstars.middleearth.entity.beasts.AbstractBeastEntity; import net.sevenstars.middleearth.entity.npcs.data.NpcEntityTextureData; import net.sevenstars.middleearth.exceptions.FactionIdentifierException; -import net.sevenstars.middleearth.resources.NpcME; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; import net.sevenstars.middleearth.resources.StateSaverAndLoader; -import net.sevenstars.middleearth.resources.datas.FactionType; -import net.sevenstars.middleearth.resources.datas.RaceType; +import net.sevenstars.middleearth.resources.datas.common.FactionType; +import net.sevenstars.middleearth.resources.datas.common.RaceType; import net.sevenstars.middleearth.resources.datas.factions.Faction; import net.sevenstars.middleearth.resources.datas.factions.FactionLookup; import net.sevenstars.middleearth.resources.datas.npcs.NpcData; import net.sevenstars.middleearth.resources.datas.races.Race; import net.sevenstars.middleearth.resources.datas.races.RaceLookup; -import net.sevenstars.middleearth.resources.datas.races.data.EntityCategory; +import net.sevenstars.middleearth.resources.datas.common.EntityCategories; import net.sevenstars.middleearth.resources.persistent_datas.PlayerData; import org.jetbrains.annotations.Nullable; @@ -121,7 +122,7 @@ private void readEntityData(ReadView view) { view.read("EntityCategory", Codec.STRING) .ifPresent(x -> { if(!x.isEmpty()){ - setNpcCategory(EntityCategory.valueOf(x)); + setNpcCategory(EntityCategories.valueOf(x)); } }); view.read("NpcTextureData", NpcEntityTextureData.CODEC) @@ -156,10 +157,10 @@ public void setFactionId(Identifier factionId) { this.dataTracker.set(FACTION_ID, factionId.toString()); } - public void setNpcCategory(EntityCategory entityCategory) { - if(entityCategory == null) + public void setNpcCategory(EntityCategories entityCategories) { + if(entityCategories == null) return; - this.dataTracker.set(CATEGORY, entityCategory.name()); + this.dataTracker.set(CATEGORY, entityCategories.name()); } public void setNpcTextureData(NpcEntityTextureData npcEntityTextureData) { @@ -198,7 +199,7 @@ public void tryToInitializeData(){ return; World world = getWorld(); - if(world instanceof ServerWorld serverWorld){ + if(!world.isClient && world instanceof ServerWorld serverWorld){ if(NpcEntityInitializer.shouldInitialize(serverWorld, this)){ NpcEntityInitializer.initializeNpcEntity(serverWorld, this); } @@ -406,7 +407,7 @@ public NpcData getNpcData() { var id = getNpcDataId(); if(id == null) return null; - return getWorld().getRegistryManager().getOrThrow(NpcME.KEY).get(id); + return getWorld().getRegistryManager().getOrThrow(DynamicRegistriesME.NPC).get(id); } @Override @@ -519,7 +520,7 @@ public static boolean shouldTarget(NpcEntity npcEntity, LivingEntity target){ var playerFaction = StateSaverAndLoader.getPlayerState(player).getFaction(); if(playerFaction == null) return true; - if(faction.getDiplomaticEnemies().contains(playerFaction)) + if(faction.isHostileToward(playerFaction)) return true; } @@ -528,10 +529,10 @@ public static boolean shouldTarget(NpcEntity npcEntity, LivingEntity target){ return false; Faction targetFaction = targetNpcEntity.getFaction(); - if(targetFaction == null || faction.getDiplomaticEnemies().contains(targetFaction.getId())) + if(targetFaction == null || faction.isHostileToward(targetFaction.getId())) return true; else if(targetFaction.getFactionType() == FactionType.SUBFACTION){ - if(faction.getDiplomaticEnemies().contains(targetFaction.getParentFaction(npcEntity.getWorld()).getId())) + if(faction.isHostileToward(targetFaction.getParentFaction(npcEntity.getWorld()).getId())) return true; } } @@ -542,10 +543,10 @@ else if(targetFaction.getFactionType() == FactionType.SUBFACTION){ for(Entity entity : entityList){ if(entity instanceof NpcEntity targetNpcEntity){ Faction targetFaction = targetNpcEntity.getFaction(); - if(targetFaction == null || faction.getDiplomaticEnemies().contains(targetFaction.getId())) + if(targetFaction == null || faction.isHostileToward(targetFaction.getId())) return true; else if(targetFaction.getFactionType() == FactionType.SUBFACTION){ - if(faction.getDiplomaticEnemies().contains(targetFaction.getParentFaction(npcEntity.getWorld()).getId())) + if(faction.isHostileToward(targetFaction.getParentFaction(npcEntity.getWorld()).getId())) return true; } } @@ -579,11 +580,11 @@ public void setTarget(@Nullable LivingEntity target) { this.getBrain().remember(MemoryModuleType.ATTACK_TARGET, target); } - public EntityCategory getNpcCategory() { + public EntityCategories getNpcCategory() { var category = this.dataTracker.get(CATEGORY); if(category == null || category.isEmpty()) return null; - return EntityCategory.valueOf(category); + return EntityCategories.valueOf(category); } public BlockPos getStructureManagerHostPos() { @@ -620,7 +621,8 @@ public boolean hasTextureData(){ public static DefaultAttributeContainer.Builder createAttributes() { return MobEntity.createMobAttributes() - .add(EntityAttributes.ATTACK_DAMAGE, 2.0); + .add(EntityAttributes.ATTACK_DAMAGE, 2.0) + .add(ModEntityAttributes.WIDTH_SCALE, 1.0); } @Nullable @@ -642,4 +644,13 @@ protected void dropEquipment(ServerWorld world, DamageSource source, boolean cau public void releaseTicketFor(MemoryModuleType destination) { this.releaseTicketFor(MemoryModuleType.HOME); } + + public float getWidthScale() { + try{ + return (float) this.getAttributeValue(ModEntityAttributes.WIDTH_SCALE); + } + catch (Exception ignored){ + return 1.0f; + } + } } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcEntityBuilder.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcEntityBuilder.java index a5731d2f5a..2b903c45f0 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcEntityBuilder.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcEntityBuilder.java @@ -3,7 +3,7 @@ import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.sevenstars.middleearth.resources.datas.npcs.NpcDataLookup; import org.jetbrains.annotations.Nullable; @@ -13,7 +13,7 @@ public class NpcEntityBuilder { public NpcEntityBuilder(World world, @Nullable BlockPos pos){ this.world = world; - this.entity = new NpcEntity(ModEntities.NPC, this.world); + this.entity = new NpcEntity(EntitiesME.NPC, this.world); if(pos != null) this.entity.setPosition(pos.toCenterPos()); } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcEntityHelper.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcEntityHelper.java index eb2b4deb59..8120a3c53c 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcEntityHelper.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcEntityHelper.java @@ -4,79 +4,86 @@ import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.util.Identifier; import net.sevenstars.middleearth.entity.npcs.data.NpcEntityTextureData; -import net.sevenstars.middleearth.resources.CharacterPatternsME; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcTextureData; -import net.sevenstars.middleearth.resources.datas.races.data.npctextures.NpcTexturePattern; -import net.sevenstars.middleearth.resources.datas.races.data.npctextures.NpcTextureType; +import net.sevenstars.middleearth.registries.CharacterPatternsRegistryME; +import net.sevenstars.middleearth.resources.datas.common.CharacterMaterialTypes; +import net.sevenstars.middleearth.resources.datas.common.CharacterPatternTypes; +import net.sevenstars.middleearth.resources.datas.texture_presets.ClothingSelection; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePresetDataPool; +import net.sevenstars.middleearth.resources.datas.texture_presets.CharacterTexturePattern; import java.util.Optional; public class NpcEntityHelper { - public static NpcEntityTextureData generateSkinTextureData(NpcEntityTextureData npcTextureData, NpcTextureData.Identity textureIdentity) { - Identifier materialId = NpcTextureData.getRawMaterial(textureIdentity, NpcTextureType.SKIN); - Identifier bodyPatternId = NpcTextureData.getRawPattern(textureIdentity, NpcTextureType.BODY); - Identifier headPatternId = NpcTextureData.getRawPattern(textureIdentity, NpcTextureType.HEAD); - Identifier earPatternId = NpcTextureData.getRawPattern(textureIdentity, NpcTextureType.EAR); - Identifier nosePatternId = NpcTextureData.getRawPattern(textureIdentity, NpcTextureType.NOSE); - Identifier scarPatternId = NpcTextureData.getRawPattern(textureIdentity, NpcTextureType.SCAR); + public static NpcEntityTextureData generateSkinTextureData(NpcEntityTextureData npcTextureData, TexturePresetDataPool.Identity textureIdentity) { + Identifier materialId = TexturePresetDataPool.getRawMaterial(textureIdentity, CharacterMaterialTypes.SKIN); + Identifier bodyPatternId = TexturePresetDataPool.getRawPattern(textureIdentity, CharacterPatternTypes.BODY); + Identifier headPatternId = TexturePresetDataPool.getRawPattern(textureIdentity, CharacterPatternTypes.HEAD); + Identifier feetPatternId = TexturePresetDataPool.getRawPattern(textureIdentity, CharacterPatternTypes.FEET); + Identifier earPatternId = TexturePresetDataPool.getRawPattern(textureIdentity, CharacterPatternTypes.EAR); + Identifier nosePatternId = TexturePresetDataPool.getRawPattern(textureIdentity, CharacterPatternTypes.NOSE); + Identifier scarPatternId = TexturePresetDataPool.getRawPattern(textureIdentity, CharacterPatternTypes.SCAR); - npcTextureData = npcTextureData.withSkinTexture(NpcTextureData.buildId(bodyPatternId, materialId)); - npcTextureData = npcTextureData.withHeadTexture(NpcTextureData.buildId(headPatternId, materialId)); + npcTextureData = npcTextureData.withSkinTexture(TexturePresetDataPool.buildId(bodyPatternId, materialId)); + npcTextureData = npcTextureData.withHeadTexture(TexturePresetDataPool.buildId(headPatternId, materialId)); if(scarPatternId != null){ - npcTextureData = npcTextureData.withScarTexture(NpcTextureData.buildId(scarPatternId, materialId)); + npcTextureData = npcTextureData.withScarTexture(TexturePresetDataPool.buildId(scarPatternId, materialId)); } if(earPatternId != null){ - npcTextureData = npcTextureData.withEarTexture(NpcTextureData.buildId(earPatternId, materialId)); + npcTextureData = npcTextureData.withEarTexture(TexturePresetDataPool.buildId(earPatternId, materialId)); } if(nosePatternId != null){ - npcTextureData = npcTextureData.withNoseTexture(NpcTextureData.buildId(nosePatternId, materialId)); + npcTextureData = npcTextureData.withNoseTexture(TexturePresetDataPool.buildId(nosePatternId, materialId)); + } + if(feetPatternId != null){ + npcTextureData = npcTextureData.withFeetTexture(TexturePresetDataPool.buildId(feetPatternId, materialId)); } return npcTextureData; } - public static NpcEntityTextureData generateEyeTextureData(NpcEntityTextureData npcEntityTextureData, NpcTextureData.Identity textureIdentity, boolean haveEmissiveEyes) { - Identifier materialId = NpcTextureData.getRawMaterial(textureIdentity, NpcTextureType.EYE); - Identifier patternId = NpcTextureData.getRawPattern(textureIdentity, NpcTextureType.EYE); + public static NpcEntityTextureData generateEyeTextureData(NpcEntityTextureData npcEntityTextureData, TexturePresetDataPool.Identity textureIdentity, boolean haveEmissiveEyes) { + Identifier materialId = TexturePresetDataPool.getRawMaterial(textureIdentity, CharacterMaterialTypes.EYE); + Identifier patternId = TexturePresetDataPool.getRawPattern(textureIdentity, CharacterPatternTypes.EYE); - npcEntityTextureData = npcEntityTextureData.withEyeTexture(NpcTextureData.buildId(patternId, materialId), NpcTextureData.buildId(Identifier.of(patternId.getPath() + "_emissive"), materialId), haveEmissiveEyes); + npcEntityTextureData = npcEntityTextureData.withEyeTexture(TexturePresetDataPool.buildId(patternId, materialId), TexturePresetDataPool.buildId(Identifier.of(patternId.getPath() + "_emissive"), materialId), haveEmissiveEyes); return npcEntityTextureData; } - public static NpcEntityTextureData generateHairTextureData(NpcEntityTextureData npcEntityTextureData, NpcTextureData.Identity textureIdentity, DynamicRegistryManager manager) { - Identifier globalHairMaterialId = NpcTextureData.getRawMaterial(textureIdentity, NpcTextureType.HAIR); + public static NpcEntityTextureData generateHairTextureData(NpcEntityTextureData npcEntityTextureData, TexturePresetDataPool.Identity textureIdentity, DynamicRegistryManager manager) { + Identifier globalHairMaterialId = TexturePresetDataPool.getRawMaterial(textureIdentity, CharacterMaterialTypes.HAIR); // Hair - Identifier hairPatternId = NpcTextureData.getRawPattern(textureIdentity, NpcTextureType.HAIR); - Optional> foundHairPattern = CharacterPatternsME.get(manager, NpcTextureType.HAIR, hairPatternId); - if(foundHairPattern.isPresent() && foundHairPattern.get().value() instanceof NpcTexturePattern pattern){ - npcEntityTextureData = npcEntityTextureData.withHairTexture(NpcTextureData.buildId(hairPatternId, globalHairMaterialId)); + Identifier hairPatternId = TexturePresetDataPool.getRawPattern(textureIdentity, CharacterPatternTypes.HAIR); + Optional> foundHairPattern = CharacterPatternsRegistryME.get(manager, CharacterPatternTypes.HAIR, hairPatternId); + if(foundHairPattern.isPresent() && foundHairPattern.get().value() instanceof CharacterTexturePattern pattern){ + npcEntityTextureData = npcEntityTextureData.withHairTexture(TexturePresetDataPool.buildId(hairPatternId, globalHairMaterialId)); if(pattern.hasAddonRawValue()){ - npcEntityTextureData = npcEntityTextureData.withHairAddonTexture(NpcTextureData.buildAddonId(hairPatternId, globalHairMaterialId)); + npcEntityTextureData = npcEntityTextureData.withHairAddonTexture(TexturePresetDataPool.buildAddonId(hairPatternId, globalHairMaterialId)); } } // Eyebrow - Identifier eyebrowPatternId = NpcTextureData.getRawPattern(textureIdentity, NpcTextureType.EYEBROW); - Optional> foundEyebrowPattern = CharacterPatternsME.get(manager, NpcTextureType.EYEBROW, eyebrowPatternId); + Identifier eyebrowPatternId = TexturePresetDataPool.getRawPattern(textureIdentity, CharacterPatternTypes.EYEBROW); + Optional> foundEyebrowPattern = CharacterPatternsRegistryME.get(manager, CharacterPatternTypes.EYEBROW, eyebrowPatternId); if(foundEyebrowPattern.isPresent()){ - npcEntityTextureData = npcEntityTextureData.withEyebrowTexture(NpcTextureData.buildId(eyebrowPatternId, globalHairMaterialId)); + npcEntityTextureData = npcEntityTextureData.withEyebrowTexture(TexturePresetDataPool.buildId(eyebrowPatternId, globalHairMaterialId)); } // Beard - Identifier beardPatternId = NpcTextureData.getRawPattern(textureIdentity, NpcTextureType.BEARD); - Optional> foundBeardPattern = CharacterPatternsME.get(manager, NpcTextureType.BEARD, beardPatternId); - if(foundBeardPattern.isPresent() && foundBeardPattern.get().value() instanceof NpcTexturePattern pattern){ - npcEntityTextureData = npcEntityTextureData.withBeardTexture(NpcTextureData.buildId(beardPatternId, globalHairMaterialId)); + Identifier beardPatternId = TexturePresetDataPool.getRawPattern(textureIdentity, CharacterPatternTypes.BEARD); + Optional> foundBeardPattern = CharacterPatternsRegistryME.get(manager, CharacterPatternTypes.BEARD, beardPatternId); + if(foundBeardPattern.isPresent() && foundBeardPattern.get().value() instanceof CharacterTexturePattern pattern){ + npcEntityTextureData = npcEntityTextureData.withBeardTexture(TexturePresetDataPool.buildId(beardPatternId, globalHairMaterialId)); if(pattern.hasAddonRawValue()){ - npcEntityTextureData = npcEntityTextureData.withBeardAddonTexture(NpcTextureData.buildAddonId(beardPatternId, globalHairMaterialId)); + npcEntityTextureData = npcEntityTextureData.withBeardAddonTexture(TexturePresetDataPool.buildAddonId(beardPatternId, globalHairMaterialId)); } } return npcEntityTextureData; } - public static NpcEntityTextureData generateClothingTextureData(NpcEntityTextureData npcEntityTextureData, NpcTextureData.Identity textureIdentity) { - npcEntityTextureData = npcEntityTextureData.withClothingTexture(NpcTextureData.getTextureWithMaterial(textureIdentity, NpcTextureType.CLOTHING)); + public static NpcEntityTextureData generateClothingTextureData(NpcEntityTextureData npcEntityTextureData, TexturePresetDataPool.Identity textureIdentity) { + ClothingSelection data = TexturePresetDataPool.getClothing(textureIdentity); + npcEntityTextureData = npcEntityTextureData.withClothingTexture(data.base(), data.over(), data.extra()); return npcEntityTextureData; } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcEntityInitializer.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcEntityInitializer.java index 8410eaff30..62c0f3764d 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcEntityInitializer.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcEntityInitializer.java @@ -1,6 +1,7 @@ package net.sevenstars.middleearth.entity.npcs; import net.minecraft.block.BedBlock; +import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.EquipmentHolder; import net.minecraft.entity.EquipmentSlot; import net.minecraft.entity.SpawnReason; @@ -15,87 +16,139 @@ import net.minecraft.server.world.ServerWorld; import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; import net.minecraft.world.biome.Biome; +import net.sevenstars.middleearth.MiddleEarth; import net.sevenstars.middleearth.entity.beasts.AbstractBeastEntity; import net.sevenstars.middleearth.entity.npcs.data.NpcEntityTextureData; -import net.sevenstars.middleearth.resources.NpcME; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; import net.sevenstars.middleearth.resources.datas.biome_events.BiomeEventData; import net.sevenstars.middleearth.resources.datas.biome_events.BiomeEventDataLookup; import net.sevenstars.middleearth.resources.datas.npcs.NpcUtil; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcTextureData; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePresetDataPool; public class NpcEntityInitializer { + public static void initializeNpcEntity(ClientWorld clientWorld, NpcEntity npcEntity){ + initializeForClient(clientWorld, npcEntity); + } + public static void initializeNpcEntity(ServerWorld serverWorld, NpcEntity npcEntity){ + initializeForServer(serverWorld, npcEntity); + } + + private static void initializeForServer(ServerWorld serverWorld, NpcEntity npcEntity){ Identifier currentNpcDataId = npcEntity.getNpcDataId(); - DynamicRegistryManager registryManager = serverWorld.getRegistryManager(); - var optionalEntry = registryManager.getOptional(NpcME.KEY).get().getEntry(currentNpcDataId); - if (optionalEntry.isEmpty()) { - BlockPos blockPos = npcEntity.getBlockPos(); - RegistryEntry biome = serverWorld.getBiome(blockPos); - BiomeEventData.FoundNpcReturn foundNpcReturn = BiomeEventDataLookup.findNpcDataForBiome(serverWorld, biome, npcEntity); - if(foundNpcReturn != null){ - currentNpcDataId = foundNpcReturn.npcData().getId(); - } else { + if(!characterIdentifierExist(serverWorld, currentNpcDataId)){ + BiomeEventData.ContextualizedBiomeData contextualizedBiomeData = null; + try{ + contextualizedBiomeData = findContextualizedNpcData(serverWorld, npcEntity); + currentNpcDataId = contextualizedBiomeData.npcData().getId(); + } catch (Exception e){ npcEntity.discard(); return; } - // Assign mount if needed - if(foundNpcReturn.mountEntity() != null && !npcEntity.hasVehicle()){ - var mount = foundNpcReturn.mountEntity().spawn(serverWorld, npcEntity.getBlockPos(), SpawnReason.JOCKEY); - if(mount instanceof HorseEntity horseEntity) - horseEntity.initialize(serverWorld, serverWorld.getLocalDifficulty(npcEntity.getBlockPos()), SpawnReason.JOCKEY, null); - else if(mount instanceof AbstractBeastEntity beastEntity){ - beastEntity.initialize(serverWorld, serverWorld.getLocalDifficulty(npcEntity.getBlockPos()), SpawnReason.JOCKEY, null); - } + if(contextualizedBiomeData.hasMount() != null && !npcEntity.hasVehicle()) { + generateMountData(serverWorld, contextualizedBiomeData, npcEntity); + } + } - if(mount instanceof AbstractHorseEntity abstractHorseEntity){ - abstractHorseEntity.setOwner(npcEntity); - abstractHorseEntity.setTame(true); - if(foundNpcReturn.mountArmor() != null) - abstractHorseEntity.equipBodyArmor(foundNpcReturn.mountArmor()); - } - if(foundNpcReturn.mountEntity().isIn(TagKey.of(RegistryKeys.ENTITY_TYPE, Identifier.of("can_equip_saddle"))) && mount instanceof EquipmentHolder equipmentHolder){ - equipmentHolder.equipStack(EquipmentSlot.SADDLE, new ItemStack(Items.SADDLE)); - } + generateCharacterTextures(serverWorld, currentNpcDataId, npcEntity); + } - npcEntity.startRiding(mount); - } + private static void initializeForClient(World clientWorld, NpcEntity npcEntity) { + Identifier currentNpcDataId = npcEntity.getNpcDataId(); + if(characterIdentifierExist(clientWorld, currentNpcDataId)){ + generateCharacterTextures(clientWorld, currentNpcDataId, npcEntity); } + } + private static void generateCharacterTextures(World world, Identifier currentNpcDataId, NpcEntity npcEntity) { // Get npc data + String currentStep = "Fetching datas"; try{ - var npcData = registryManager.getOptional(NpcME.KEY).get().getEntry(currentNpcDataId).get().value(); + var npcData = world.getRegistryManager().getOptional(DynamicRegistriesME.NPC).get().getEntry(currentNpcDataId).get().value(); npcEntity.setNpcData(currentNpcDataId); npcEntity.setFactionId(npcData.getFaction()); - npcEntity.setNpcCategory(npcData.getNpcTextureData(serverWorld).getRandomCategory()); + npcEntity.setNpcCategory(npcData.getNpcTextureData(world).getRandomCategory()); npcData.applyAttributes(npcEntity); - NpcTextureData textureData = npcData.getNpcTextureData(serverWorld); + TexturePresetDataPool textureData = npcData.getNpcTextureData(world); - NpcTextureData.Identity identity = NpcTextureData.Identity.create(textureData, npcEntity.getNpcCategory()); + TexturePresetDataPool.Identity identity = TexturePresetDataPool.Identity.create(textureData, npcEntity.getNpcCategory()); if(identity == null) - identity = NpcTextureData.Identity.create(textureData); + identity = TexturePresetDataPool.Identity.create(textureData); NpcEntityTextureData entityTextureData = new NpcEntityTextureData(); + currentStep = "Generating skin..."; entityTextureData = NpcEntityHelper.generateSkinTextureData(entityTextureData, identity); - entityTextureData = NpcEntityHelper.generateEyeTextureData(entityTextureData, identity, npcData.getNpcTextureData(serverWorld).haveEmissiveEyes(identity)); - entityTextureData = NpcEntityHelper.generateHairTextureData(entityTextureData, identity, serverWorld.getRegistryManager()); + currentStep = "Generating eyes..."; + entityTextureData = NpcEntityHelper.generateEyeTextureData(entityTextureData, identity, npcData.getNpcTextureData(world).haveEmissiveEyes(identity)); + currentStep = "Generating hair..."; + entityTextureData = NpcEntityHelper.generateHairTextureData(entityTextureData, identity, world.getRegistryManager()); + currentStep = "Generating clothing..."; entityTextureData = NpcEntityHelper.generateClothingTextureData(entityTextureData, identity); npcEntity.setNpcTextureData(entityTextureData); NpcUtil.equipAll(npcEntity, npcData.getGear()); } catch (Exception exception){ - npcEntity.discard(); + MiddleEarth.LOGGER.logError(String.format("NpcEntityInitializer::Couldn't generate %s because of : %s | Triggered by %s", currentNpcDataId, exception.getLocalizedMessage(), currentStep)); + if(!npcEntity.isRemoved()) + npcEntity.discard(); } } + private static void generateMountData(ServerWorld serverWorld, BiomeEventData.ContextualizedBiomeData contextualizedBiomeData, NpcEntity npcEntity) { + // Assign mount if needed + if(contextualizedBiomeData.hasMount() != null && !npcEntity.hasVehicle()){ + var mount = contextualizedBiomeData.hasMount().spawn(serverWorld, npcEntity.getBlockPos(), SpawnReason.JOCKEY); + if(mount instanceof HorseEntity horseEntity) + horseEntity.initialize(serverWorld, serverWorld.getLocalDifficulty(npcEntity.getBlockPos()), SpawnReason.JOCKEY, null); + else if(mount instanceof AbstractBeastEntity beastEntity){ + beastEntity.initialize(serverWorld, serverWorld.getLocalDifficulty(npcEntity.getBlockPos()), SpawnReason.JOCKEY, null); + } + + if(mount instanceof AbstractHorseEntity abstractHorseEntity){ + abstractHorseEntity.setOwner(npcEntity); + abstractHorseEntity.setTame(true); + if(contextualizedBiomeData.mountArmor() != null) + abstractHorseEntity.equipBodyArmor(contextualizedBiomeData.mountArmor()); + + if(mount instanceof AbstractBeastEntity abstractBeastEntity){ + abstractBeastEntity.tameBeast(npcEntity); + } + } + if(contextualizedBiomeData.hasMount().isIn(TagKey.of(RegistryKeys.ENTITY_TYPE, Identifier.of("can_equip_saddle"))) && mount instanceof EquipmentHolder equipmentHolder){ + equipmentHolder.equipStack(EquipmentSlot.SADDLE, new ItemStack(Items.SADDLE)); + } + + npcEntity.startRiding(mount); + } + } + + private static BiomeEventData.ContextualizedBiomeData findContextualizedNpcData(World world, NpcEntity npcEntity) throws Exception { + BlockPos blockPos = npcEntity.getBlockPos(); + RegistryEntry biome = world.getBiome(blockPos); + BiomeEventData.ContextualizedBiomeData contextualizedBiomeData = BiomeEventDataLookup.findNpcDataForBiome(world, biome, npcEntity); + if(contextualizedBiomeData != null){ + return contextualizedBiomeData; + } else { + throw new Exception(); + } + } + + private static boolean characterIdentifierExist(World world, Identifier unitIdentifier){ + DynamicRegistryManager registryManager = world.getRegistryManager(); + var optionalEntry = registryManager.getOptional(DynamicRegistriesME.NPC).get().getEntry(unitIdentifier); + return !optionalEntry.isEmpty(); + } + public static boolean shouldInitialize(ServerWorld serverWorld, NpcEntity npcEntity){ Identifier currentNpcDataId = npcEntity.getNpcDataId(); if(currentNpcDataId == null) return true; DynamicRegistryManager registryManager = serverWorld.getRegistryManager(); - var optionalEntry = registryManager.getOptional(NpcME.KEY).get().getEntry(currentNpcDataId); + var optionalEntry = registryManager.getOptional(DynamicRegistriesME.NPC).get().getEntry(currentNpcDataId); if(!npcEntity.hasTextureData()) return true; return optionalEntry.isEmpty(); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcEntityRenderState.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcEntityRenderState.java index 2f3639450b..4f89ddb98f 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcEntityRenderState.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcEntityRenderState.java @@ -4,7 +4,10 @@ import net.minecraft.util.Identifier; public class NpcEntityRenderState extends BipedEntityRenderState { + public float widthScale; + public Identifier skinId; + public Identifier feetId; public Identifier headId; public Identifier earId; public Identifier noseId; @@ -16,16 +19,20 @@ public class NpcEntityRenderState extends BipedEntityRenderState { public Identifier beardAddonId; public Identifier hairId; public Identifier hairAddonId; - public Identifier clothingId; + public Identifier clothingBase; + public Identifier clothingOver; + public Identifier clothingExtra; public boolean haveEmissiveEyes; public boolean blinking; + public boolean canShowFeet; public boolean canShowEars; public boolean canShowBeard; public boolean canShowHair; public NpcEntityRenderState() { + this.widthScale = 1.0f; this.skinId = null; this.headId = null; this.earId = null; @@ -38,13 +45,17 @@ public NpcEntityRenderState() { this.beardAddonId = null; this.hairId = null; this.hairAddonId = null; - this.clothingId = null; + + this.clothingBase = null; + this.clothingOver = null; + this.clothingExtra = null; this.haveEmissiveEyes = false; this.blinking = false; - this.canShowEars = false; - this.canShowBeard = false; - this.canShowHair = false; + this.canShowFeet = false; + this.canShowEars = true; + this.canShowBeard = true; + this.canShowHair = true; } } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcEntityRenderer.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcEntityRenderer.java index 388a579773..daf522a57d 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcEntityRenderer.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcEntityRenderer.java @@ -12,9 +12,7 @@ import net.minecraft.client.render.entity.feature.HeadFeatureRenderer; import net.minecraft.client.render.entity.model.ArmorEntityModel; import net.minecraft.client.render.entity.model.BipedEntityModel; -import net.minecraft.client.render.entity.model.EntityModel; import net.minecraft.client.render.entity.model.EntityModelLayers; -import net.minecraft.client.render.entity.state.EntityRenderState; import net.minecraft.client.texture.Sprite; import net.minecraft.client.texture.SpriteAtlasTexture; import net.minecraft.client.util.math.MatrixStack; @@ -26,15 +24,15 @@ import net.minecraft.item.consume.UseAction; import net.minecraft.util.Hand; import net.minecraft.util.Identifier; -import net.minecraft.util.math.ColorHelper; import net.minecraft.util.math.Direction; import net.sevenstars.middleearth.client.ModTexturedRenderLayers; import net.sevenstars.middleearth.entity.ModEntityModelLayers; import net.sevenstars.middleearth.entity.npcs.features.ear.EarFeatureRenderer; +import net.sevenstars.middleearth.entity.npcs.features.feet.FeetFeatureRenderer; import net.sevenstars.middleearth.entity.npcs.features.hair.HairFeatureRenderer; import net.sevenstars.middleearth.entity.npcs.features.nose.NoseFeatureRenderer; import net.sevenstars.middleearth.item.DataComponentTypesME; -import net.sevenstars.middleearth.resources.AtlasesME; +import net.sevenstars.middleearth.registries.AtlasesME; import net.sevenstars.middleearth.utils.ItemTagsME; import org.jetbrains.annotations.Nullable; @@ -42,7 +40,8 @@ public class NpcEntityRenderer extends BipedEntityRenderer x.getClass() == HeadFeatureRenderer.class); this.addFeature(new ArmorFeatureRenderer(this, new ArmorEntityModel(context.getPart(EntityModelLayers.PLAYER_INNER_ARMOR)), new ArmorEntityModel(context.getPart(EntityModelLayers.PLAYER_OUTER_ARMOR)), context.getEquipmentRenderer())); - this.addFeature(new HairFeatureRenderer(this, context.getEntityModels())); this.addFeature(new EarFeatureRenderer(this, context.getEntityModels())); this.addFeature(new NoseFeatureRenderer(this, context.getEntityModels())); + this.addFeature(new FeetFeatureRenderer(this, context.getEntityModels())); skinAtlasTexture = AtlasesME.getAtlasFromPath(ModTexturedRenderLayers.CHARACTER_SKIN_ATLAS_TEXTURE); eyeAtlasTexture = AtlasesME.getAtlasFromPath(ModTexturedRenderLayers.CHARACTER_EYES_ATLAS_TEXTURE); hairAtlasTexture = AtlasesME.getAtlasFromPath(ModTexturedRenderLayers.CHARACTER_HAIRS_ATLAS_TEXTURE); - clothingAtlasTexture = AtlasesME.getAtlasFromPath(ModTexturedRenderLayers.CHARACTER_CLOTHINGS_ATLAS_TEXTURE); + clothesAtlasTexture = AtlasesME.getAtlasFromPath(ModTexturedRenderLayers.CHARACTER_CLOTHES_ATLAS_TEXTURE); this.shadowRadius = 0.5f; } - // region RenderState + // region [RenderState] @Override public NpcEntityRenderState createRenderState() { return new NpcEntityRenderState(); } @Override - public void updateRenderState(NpcEntity npcEntity, NpcEntityRenderState npcEntityRenderState, float f) { + public void updateRenderState(NpcEntity npcEntity, NpcEntityRenderState npcEntityRenderState, float tickDelta) { if(!npcEntity.getWorld().isClient) return; - super.updateRenderState(npcEntity, npcEntityRenderState, f); - npcEntityRenderState.pose = npcEntity.getPose(); + + super.updateRenderState(npcEntity, npcEntityRenderState, tickDelta); var npcTextureData = npcEntity.getNpcTextureData(); + float currentLightLevel = npcEntity.getWorld().getLightLevel(npcEntity.getBlockPos()); + + npcEntityRenderState.pose = npcEntity.getPose(); npcEntityRenderState.leftArmPose = getArmPose(npcEntity, npcEntity.getStackInHand(Hand.OFF_HAND), Hand.OFF_HAND); npcEntityRenderState.rightArmPose = getArmPose(npcEntity, npcEntity.getStackInHand(Hand.MAIN_HAND), Hand.MAIN_HAND); + npcEntityRenderState.widthScale = npcEntity.getWidthScale(); + npcEntityRenderState.skinId = npcTextureData.getBodyTexture(); + npcEntityRenderState.feetId = npcTextureData.getFeetTexture(); npcEntityRenderState.headId = npcTextureData.getHeadTexture(); npcEntityRenderState.earId = npcTextureData.getEarTexture(); npcEntityRenderState.noseId = npcTextureData.getNoseTexture(); npcEntityRenderState.eyesId = npcTextureData.getEyeTexture(); npcEntityRenderState.eyesEmissiveId = npcTextureData.getEyeEmissiveTexture(); - npcEntityRenderState.haveEmissiveEyes = npcTextureData.isEyeEmissive() && - npcEntity.getWorld().getLightLevel(npcEntity.getBlockPos(), npcEntity.getWorld().getAmbientDarkness()) < 6; + npcEntityRenderState.haveEmissiveEyes = npcTextureData.isEyeEmissive() && currentLightLevel < 8; npcEntityRenderState.eyebrowId = npcTextureData.getEyebrowTexture(); npcEntityRenderState.scarId = npcTextureData.getScarTexture(); npcEntityRenderState.beardId = npcTextureData.getBeardTexture(); npcEntityRenderState.beardAddonId = npcTextureData.getBeardAddonTexture(); npcEntityRenderState.hairId = npcTextureData.getHairTexture(); npcEntityRenderState.hairAddonId = npcTextureData.getHairAddonTexture(); - npcEntityRenderState.clothingId = npcTextureData.getClothingTexture(); - npcEntityRenderState.blinking = (npcEntity.getInitializationTick() + npcEntity.age) % 80 <= 2; - ItemStack helmet = npcEntity.getEquippedStack(EquipmentSlot.HEAD); - if(helmet == null || helmet.isEmpty()){ + npcEntityRenderState.clothingBase = npcTextureData.getClothingBaseTexture(); + npcEntityRenderState.clothingOver = npcTextureData.getClothingOverTexture(); + npcEntityRenderState.clothingExtra = npcTextureData.getClothingExtraTexture(); + + npcEntityRenderState.blinking = (npcEntity.getInitializationTick() + npcEntity.getBreedingAge()) % 80 >= 80 - 2; + + ItemStack currentHelmet = npcEntity.getEquippedStack(EquipmentSlot.HEAD); + if(currentHelmet == null || currentHelmet.isEmpty()){ npcEntityRenderState.canShowBeard = true; npcEntityRenderState.canShowHair = true; npcEntityRenderState.canShowEars = true; } else { - var hasAttachment = helmet.get(DataComponentTypesME.HELMET_ATTACHMENT_DATA); + var hasAttachment = currentHelmet.get(DataComponentTypesME.HELMET_ATTACHMENT_DATA); boolean hasHoodDown = hasAttachment == null || hasAttachment.down(); - npcEntityRenderState.canShowEars = helmet.isIn(ItemTagsME.CHARACTER_HELMET_SHOW_EARS) && hasHoodDown; - npcEntityRenderState.canShowBeard = !helmet.isIn(ItemTagsME.CHARACTER_HELMET_HIDE_BEARD); - npcEntityRenderState.canShowHair = !helmet.isIn(ItemTagsME.CHARACTER_HELMET_HIDE_HAIR) && hasHoodDown; + npcEntityRenderState.canShowEars = currentHelmet.isIn(ItemTagsME.CHARACTER_HELMET_SHOW_EARS) && hasHoodDown; + npcEntityRenderState.canShowBeard = !currentHelmet.isIn(ItemTagsME.CHARACTER_HELMET_HIDE_BEARD); + npcEntityRenderState.canShowHair = !currentHelmet.isIn(ItemTagsME.CHARACTER_HELMET_HIDE_HAIR) && hasHoodDown; } + ItemStack currentShoes = npcEntity.getEquippedStack(EquipmentSlot.FEET); + npcEntityRenderState.canShowFeet = currentShoes == null || currentShoes.isEmpty(); } // endregion - - // region Layered Texture Renderer + // region [Layered Texture Renderer] @Nullable @Override protected RenderLayer getRenderLayer(NpcEntityRenderState state, boolean showBody, boolean translucent, boolean showOutline) { @@ -132,9 +141,9 @@ protected RenderLayer getRenderLayer(NpcEntityRenderState state, boolean showBod @Override public void render(NpcEntityRenderState state, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light) { - if(state.skinId == null || state.headId == null || state.eyesId == null){ + if(state.skinId == null || state.headId == null || state.eyesId == null) return; - } + matrices.push(); if (state.isInPose(EntityPose.SLEEPING)) { Direction direction = state.sleepingDirection; @@ -144,95 +153,93 @@ public void render(NpcEntityRenderState state, MatrixStack matrices, VertexConsu } } else if (state.hasVehicle) { - float f = state.standingEyeHeight - 0.1F; matrices.translate(0, -0.5F, 0); } - float g = ((NpcEntityRenderState)state).baseScale; - matrices.scale(g, g, g); - this.setupTransforms(state, matrices, ((NpcEntityRenderState)state).bodyYaw, g); - matrices.scale(-1.0f, -1.0f, 1.0f); + float g = state.baseScale; + float widthScale = state.widthScale; + + matrices.scale(g * widthScale, g, g * widthScale); + this.setupTransforms(state, matrices, state.bodyYaw, g); + matrices.scale(-widthScale, -1.0f, widthScale); this.scale(state, matrices); matrices.translate(0.0f, -1.501f, 0.0f); - ((EntityModel)this.model).setAngles(state); + this.model.setAngles(state); this.model.setAngles(state); - boolean bl = this.isVisible(state); - boolean bl2 = !bl && !state.invisibleToPlayer; - int k = bl2 ? 654311423 : -1; - int color = ColorHelper.mix(k, this.getMixColor(state)); int overlay = state.hurt ? getOverlay(state, this.getAnimationCounter(state)) : OverlayTexture.DEFAULT_UV; // Will always be shown - renderPart(matrices, vertexConsumers, skinAtlasTexture, ModTexturedRenderLayers.getCharacterSkinsRenderLayer(), - AtlasesME.prefixAtlas(state.skinId, AtlasesME.CHARACTER_SKINS), light, overlay, color); + renderTexture(matrices, vertexConsumers, skinAtlasTexture, ModTexturedRenderLayers.getCharacterSkinsRenderLayer(), + AtlasesME.prefixAtlas(state.skinId, AtlasesME.CHARACTER_SKINS), light, overlay); - renderPart(matrices, vertexConsumers, skinAtlasTexture, ModTexturedRenderLayers.getCharacterSkinsRenderLayer(), - AtlasesME.prefixAtlas(state.headId, AtlasesME.CHARACTER_SKINS), light, overlay, color); + renderTexture(matrices, vertexConsumers, skinAtlasTexture, ModTexturedRenderLayers.getCharacterSkinsRenderLayer(), + AtlasesME.prefixAtlas(state.headId, AtlasesME.CHARACTER_SKINS), light, overlay); if(!state.blinking){ - renderPart(matrices, vertexConsumers, eyeAtlasTexture, ModTexturedRenderLayers.getCharacterEyesTexturesRenderLayer(false), - AtlasesME.prefixAtlas(state.eyesId, AtlasesME.CHARACTER_EYES), light, overlay, color); - - if(state.haveEmissiveEyes){ - renderPart(matrices, vertexConsumers, eyeAtlasTexture, ModTexturedRenderLayers.getCharacterEyesTexturesRenderLayer(true), - AtlasesME.prefixAtlas(state.eyesEmissiveId, AtlasesME.CHARACTER_EYES), light, overlay, color); - } + renderTexture(matrices, vertexConsumers, eyeAtlasTexture, ModTexturedRenderLayers.getCharacterEyesTexturesRenderLayer(false), + AtlasesME.prefixAtlas(state.eyesId, AtlasesME.CHARACTER_EYES), light, overlay); + if(state.haveEmissiveEyes) + renderTexture(matrices, vertexConsumers, eyeAtlasTexture, ModTexturedRenderLayers.getCharacterEyesTexturesRenderLayer(true), + AtlasesME.prefixAtlas(state.eyesEmissiveId, AtlasesME.CHARACTER_EYES), light, overlay); } + // Optionally shown, only if the value is present - if(state.eyebrowId != null){ - renderPart(matrices, vertexConsumers, hairAtlasTexture, ModTexturedRenderLayers.getCharacterHairsRenderLayer(), - AtlasesME.prefixAtlas(state.eyebrowId, AtlasesME.CHARACTER_HAIRS), light, overlay, color); - } + if(state.eyebrowId != null) + renderTexture(matrices, vertexConsumers, hairAtlasTexture, ModTexturedRenderLayers.getCharacterHairsRenderLayer(), + AtlasesME.prefixAtlas(state.eyebrowId, AtlasesME.CHARACTER_HAIRS), light, overlay); - if(state.scarId != null){ - renderPart(matrices, vertexConsumers, skinAtlasTexture, ModTexturedRenderLayers.getCharacterSkinsRenderLayer(), - AtlasesME.prefixAtlas(state.scarId, AtlasesME.CHARACTER_SKINS), light, overlay, color); - } - if(state.beardId != null){ - renderPart(matrices, vertexConsumers, hairAtlasTexture, ModTexturedRenderLayers.getCharacterHairsRenderLayer(), - AtlasesME.prefixAtlas(state.beardId, AtlasesME.CHARACTER_HAIRS), light, overlay, color); - } - if(state.hairId != null){ - renderPart(matrices, vertexConsumers, hairAtlasTexture, ModTexturedRenderLayers.getCharacterHairsRenderLayer(), - AtlasesME.prefixAtlas(state.hairId, AtlasesME.CHARACTER_HAIRS), light, overlay, color); - } - if(state.clothingId != null){ - renderPart(matrices, vertexConsumers, clothingAtlasTexture, ModTexturedRenderLayers.getCharacterClothingsRenderLayer(), - AtlasesME.prefixAtlas(state.clothingId, AtlasesME.CHARACTER_CLOTHINGS), light, overlay, color); - } + if(state.scarId != null) + renderTexture(matrices, vertexConsumers, skinAtlasTexture, ModTexturedRenderLayers.getCharacterSkinsRenderLayer(), + AtlasesME.prefixAtlas(state.scarId, AtlasesME.CHARACTER_SKINS), light, overlay); + + if(state.beardId != null) + renderTexture(matrices, vertexConsumers, hairAtlasTexture, ModTexturedRenderLayers.getCharacterHairsRenderLayer(), + AtlasesME.prefixAtlas(state.beardId, AtlasesME.CHARACTER_HAIRS), light, overlay); + + if(state.hairId != null) + renderTexture(matrices, vertexConsumers, hairAtlasTexture, ModTexturedRenderLayers.getCharacterHairsRenderLayer(), + AtlasesME.prefixAtlas(state.hairId, AtlasesME.CHARACTER_HAIRS), light, overlay); + + if(state.clothingBase != null) + renderTexture(matrices, vertexConsumers, clothesAtlasTexture, ModTexturedRenderLayers.getCharacterClothingsRenderLayer(), state.clothingBase, light, overlay); + + if(state.clothingOver != null) + renderTexture(matrices, vertexConsumers, clothesAtlasTexture, ModTexturedRenderLayers.getCharacterClothingsRenderLayer(), state.clothingOver, light, overlay); + + if(state.clothingExtra != null) + renderTexture(matrices, vertexConsumers, clothesAtlasTexture, ModTexturedRenderLayers.getCharacterClothingsRenderLayer(), state.clothingExtra, light, overlay); if (this.shouldRenderFeatures(state)) { for (FeatureRenderer feature : this.features) { - if (feature instanceof EarFeatureRenderer) { + if (feature instanceof EarFeatureRenderer) if (state.earId == null) continue; - } - if (feature instanceof NoseFeatureRenderer) { + if (feature instanceof NoseFeatureRenderer) if (state.noseId == null) continue; - } - if (feature instanceof HairFeatureRenderer) { + if (feature instanceof HairFeatureRenderer) if (state.hairAddonId == null && state.beardAddonId == null) continue; - } + if(feature instanceof FeetFeatureRenderer) + if(state.feetId == null) continue; feature.render(matrices, vertexConsumers, light, state, state.relativeHeadYaw, state.pitch); } } matrices.pop(); - if (((EntityRenderState)state).displayName != null) { - this.renderLabelIfPresent(state, ((EntityRenderState)state).displayName, matrices, vertexConsumers, light); + if ((state).displayName != null) { + this.renderLabelIfPresent(state, (state).displayName, matrices, vertexConsumers, light); } } - private void renderPart(MatrixStack matrices, VertexConsumerProvider vertexConsumers, SpriteAtlasTexture atlasTexture, RenderLayer renderLayer, Identifier textureId, int light, int overlay, int color){ + private void renderTexture(MatrixStack matrices, VertexConsumerProvider vertexConsumers, SpriteAtlasTexture atlasTexture, RenderLayer renderLayer, Identifier textureId, int light, int overlay){ VertexConsumer vertexConsumer = vertexConsumers.getBuffer(renderLayer); Sprite sprite = atlasTexture.getSprite(textureId); - renderModel(sprite, matrices, vertexConsumer, light, overlay, color); + renderModel(sprite, matrices, vertexConsumer, light, overlay); } - private void renderModel(Sprite sprite, MatrixStack matrices, VertexConsumer vertexConsumer, int light, int overlay, int color){ + private void renderModel(Sprite sprite, MatrixStack matrices, VertexConsumer vertexConsumer, int light, int overlay){ if(sprite != null){ VertexConsumer newLayerVertexConsumer = sprite.getTextureSpecificVertexConsumer(vertexConsumer); - model.render(matrices, newLayerVertexConsumer, light, overlay, color); + model.render(matrices, newLayerVertexConsumer, light, overlay); } } @@ -289,5 +296,5 @@ private BipedEntityModel.ArmPose getArmPose(NpcEntity npc, ItemStack stack, Hand } return BipedEntityModel.ArmPose.ITEM; } - + // endregion } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcTaskListProvider.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcTaskListProvider.java index 9eac12c32c..a8db7979b0 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcTaskListProvider.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/NpcTaskListProvider.java @@ -9,7 +9,7 @@ import net.minecraft.entity.SpawnGroup; import net.minecraft.entity.ai.brain.MemoryModuleType; import net.minecraft.entity.ai.brain.task.*; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; public class NpcTaskListProvider { private static final float WALKING_SPEED = 0.4F; @@ -19,7 +19,7 @@ public class NpcTaskListProvider { return ImmutableList.of( Pair.of(2, new RandomTask( ImmutableList.of( - Pair.of(FindEntityTask.create(ModEntities.NPC, 8, MemoryModuleType.INTERACTION_TARGET, speed, 2), 2), + Pair.of(FindEntityTask.create(EntitiesME.NPC, 8, MemoryModuleType.INTERACTION_TARGET, speed, 2), 2), Pair.of(GoToPointOfInterestTask.create(speed), 1), Pair.of(GoToLookTargetTask.create(speed, 2), 1), Pair.of(new JumpInBedTask(speed), 1), diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/data/NpcEntityData.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/data/NpcEntityData.java index 084c4b44df..ac5a304d44 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/data/NpcEntityData.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/data/NpcEntityData.java @@ -8,19 +8,18 @@ import net.minecraft.network.codec.PacketCodecs; import net.minecraft.util.Identifier; import net.minecraft.world.World; -import net.sevenstars.middleearth.resources.FactionsME; -import net.sevenstars.middleearth.resources.NpcME; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; import net.sevenstars.middleearth.resources.datas.factions.Faction; import net.sevenstars.middleearth.resources.datas.npcs.NpcData; import net.sevenstars.middleearth.resources.datas.npcs.NpcDataLookup; import net.sevenstars.middleearth.resources.datas.races.Race; import net.sevenstars.middleearth.resources.datas.races.RaceLookup; -import net.sevenstars.middleearth.resources.datas.races.data.EntityCategory; +import net.sevenstars.middleearth.resources.datas.common.EntityCategories; public class NpcEntityData extends PassiveEntity.PassiveData { public Identifier factionId; public Identifier npcDataId; - public EntityCategory category; + public EntityCategories category; public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( Identifier.CODEC.fieldOf("faction").orElse(null).forGetter((data) -> data.factionId), @@ -33,7 +32,7 @@ public class NpcEntityData extends PassiveEntity.PassiveData { public NpcEntityData() { super(false, 0); this.factionId = null; - this.category = EntityCategory.SHARED; + this.category = EntityCategories.SHARED; this.npcDataId = null; } @@ -41,10 +40,10 @@ public NpcEntityData(Identifier factionId, Identifier npcDataId, String category super(false, 0); this.factionId = factionId; this.npcDataId = npcDataId; - this.category = EntityCategory.valueOf(category.toUpperCase()); + this.category = EntityCategories.valueOf(category.toUpperCase()); } - public NpcEntityData(Identifier factionId, Identifier npcDataId, EntityCategory category) { + public NpcEntityData(Identifier factionId, Identifier npcDataId, EntityCategories category) { super(false, 0); this.factionId = factionId; this.npcDataId = npcDataId; @@ -52,10 +51,10 @@ public NpcEntityData(Identifier factionId, Identifier npcDataId, EntityCategory } public Faction getFactionValue(World world) { - return world.getRegistryManager().getOrThrow(FactionsME.KEY).get(factionId); + return world.getRegistryManager().getOrThrow(DynamicRegistriesME.FACTION).get(factionId); } public NpcData getNpcDataValue(World world) { - return world.getRegistryManager().getOrThrow(NpcME.KEY).get(npcDataId); + return world.getRegistryManager().getOrThrow(DynamicRegistriesME.NPC).get(npcDataId); } public Race getRaceValue(World world){ NpcData npcData = NpcDataLookup.getNpcData(world, this.npcDataId); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/data/NpcEntityTextureData.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/data/NpcEntityTextureData.java index 80a006f93a..091707b1bf 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/data/NpcEntityTextureData.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/data/NpcEntityTextureData.java @@ -10,6 +10,7 @@ public class NpcEntityTextureData { private Identifier bodyTexture; + private Identifier feetTexture; private Identifier headTexture; private Identifier earTexture; private Identifier noseTexture; @@ -21,7 +22,10 @@ public class NpcEntityTextureData { private Identifier beardAddonTexture; private Identifier hairTexture; private Identifier hairAddonTexture; - private Identifier clothingTexture; + private Identifier clothingBaseTexture; + private Identifier clothingOverTexture; + private Identifier clothingExtraTexture; + private Boolean eyeEmissive; public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( @@ -36,6 +40,8 @@ public NpcEntityTextureData(NbtCompound compound) this.bodyTexture = Identifier.of(compound.getString("body").get()); if(compound.contains("head")) this.headTexture = Identifier.of(compound.getString("head").get()); + if(compound.contains("feet")) + this.feetTexture = Identifier.of(compound.getString("feet").get()); if(compound.contains("ear")) this.earTexture = Identifier.of(compound.getString("ear").get()); @@ -63,7 +69,6 @@ public NpcEntityTextureData(NbtCompound compound) if(compound.contains("eyebrow")) this.eyebrowTexture = Identifier.of(compound.getString("eyebrow").get()); - if(compound.contains("beard")){ this.beardTexture = Identifier.of(compound.getString("beard").get()); if(compound.contains("beard_addon")){ @@ -71,8 +76,14 @@ public NpcEntityTextureData(NbtCompound compound) } } - if(compound.contains("clothing")) - this.clothingTexture = Identifier.of(compound.getString("clothing").get()); + if(compound.contains("clothing_base")) + this.clothingBaseTexture = Identifier.of(compound.getString("clothing_base").get()); + + if(compound.contains("clothing_over")) + this.clothingOverTexture = Identifier.of(compound.getString("clothing_over").get()); + + if(compound.contains("clothing_extra")) + this.clothingExtraTexture = Identifier.of(compound.getString("clothing_extra").get()); } public NpcEntityTextureData() { @@ -87,6 +98,10 @@ public NpcEntityTextureData withHeadTexture(Identifier texture){ this.headTexture = texture; return this; } + public NpcEntityTextureData withFeetTexture(Identifier texture){ + this.feetTexture = texture; + return this; + } public NpcEntityTextureData withScarTexture(Identifier texture){ this.scarTexture = texture; return this; @@ -131,8 +146,10 @@ public NpcEntityTextureData withBeardAddonTexture(Identifier texture){ this.beardAddonTexture = texture; return this; } - public NpcEntityTextureData withClothingTexture(Identifier texture){ - this.clothingTexture = texture; + public NpcEntityTextureData withClothingTexture(Identifier textureBase, Identifier textureOver, Identifier textureExtra){ + this.clothingBaseTexture = textureBase; + this.clothingOverTexture = textureOver; + this.clothingExtraTexture = textureOver; return this; } @@ -150,6 +167,8 @@ private NbtCompound writeNbt() { nbt.putString("ear", earTexture.toString()); if(noseTexture != null) nbt.putString("nose", noseTexture.toString()); + if(feetTexture != null) + nbt.putString("feet", feetTexture.toString()); if(eyeTexture != null) nbt.putString("eye", eyeTexture.toString()); @@ -173,8 +192,12 @@ private NbtCompound writeNbt() { nbt.putString("beard_addon", beardAddonTexture.toString()); } - if(clothingTexture != null) - nbt.putString("clothing", clothingTexture.toString()); + if(clothingBaseTexture != null) + nbt.putString("clothing_base", clothingBaseTexture.toString()); + if(clothingOverTexture != null) + nbt.putString("clothing_over", clothingOverTexture.toString()); + if(clothingExtraTexture != null) + nbt.putString("clothing_extra", clothingExtraTexture.toString()); return nbt; } @@ -183,6 +206,9 @@ private NbtCompound writeNbt() { public Identifier getBodyTexture() { return this.bodyTexture; } + public Identifier getFeetTexture() { + return this.feetTexture; + } public Identifier getHeadTexture() { return this.headTexture; } @@ -217,9 +243,12 @@ public Identifier getBeardTexture() { public Identifier getBeardAddonTexture() { return this.beardAddonTexture; } - public Identifier getClothingTexture() { - return this.clothingTexture; + public Identifier getClothingBaseTexture() { return this.clothingBaseTexture; } + public Identifier getClothingOverTexture() { + return this.clothingOverTexture; } + public Identifier getClothingExtraTexture() { return this.clothingExtraTexture; } + static { PACKET_CODEC = PacketCodec.tuple( PacketCodecs.NBT_COMPOUND, NpcEntityTextureData::writeNbt, diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/features/ear/EarFeatureRenderer.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/features/ear/EarFeatureRenderer.java index d0e81d30ba..58b3c5341b 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/features/ear/EarFeatureRenderer.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/features/ear/EarFeatureRenderer.java @@ -13,13 +13,11 @@ import net.minecraft.client.texture.Sprite; import net.minecraft.client.texture.SpriteAtlasTexture; import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.util.math.ColorHelper; import net.sevenstars.middleearth.client.ModTexturedRenderLayers; import net.sevenstars.middleearth.entity.ModEntityModelLayers; import net.sevenstars.middleearth.entity.npcs.NpcEntityModel; import net.sevenstars.middleearth.entity.npcs.NpcEntityRenderState; -import net.sevenstars.middleearth.entity.npcs.NpcEntityRenderer; -import net.sevenstars.middleearth.resources.AtlasesME; +import net.sevenstars.middleearth.registries.AtlasesME; @Environment(EnvType.CLIENT) public class EarFeatureRenderer extends FeatureRenderer { @@ -41,29 +39,20 @@ public void render(MatrixStack matrices, VertexConsumerProvider vertexConsumers, VertexConsumer vertexConsumer = vertexConsumers.getBuffer(ModTexturedRenderLayers.getCharacterSkinsRenderLayer()); - boolean bl = state.invisible; - boolean bl2 = !bl && !state.invisibleToPlayer; - int k = bl2 ? 654311423 : -1; - int color = ColorHelper.mix(k, this.getMixColor(state)); int overlay = state.hurt ? getOverlay(state, 0f) : OverlayTexture.DEFAULT_UV; Sprite sprite = skinAtlasTexture.getSprite(AtlasesME.prefixAtlas(state.earId, AtlasesME.CHARACTER_SKINS)); - renderModel(sprite, matrices, vertexConsumer, light, overlay, color); - } - protected int getMixColor(NpcEntityRenderState state) { - if(state.hurt) - return NpcEntityRenderer.HURT_COLOR; - return -1; + renderModel(sprite, matrices, vertexConsumer, light, overlay); } public static int getOverlay(LivingEntityRenderState state, float whiteOverlayProgress) { return OverlayTexture.packUv(OverlayTexture.getU(whiteOverlayProgress), OverlayTexture.getV(state.hurt)); } - private void renderModel(Sprite sprite, MatrixStack matrices, VertexConsumer vertexConsumer, int light, int overlay, int color){ + private void renderModel(Sprite sprite, MatrixStack matrices, VertexConsumer vertexConsumer, int light, int overlay){ if(sprite != null){ VertexConsumer newLayerVertexConsumer = sprite.getTextureSpecificVertexConsumer(vertexConsumer); - earModel.render(matrices, newLayerVertexConsumer, light, overlay, color); + earModel.render(matrices, newLayerVertexConsumer, light, overlay); } } } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/features/feet/FeetFeatureRenderer.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/features/feet/FeetFeatureRenderer.java new file mode 100644 index 0000000000..6d7113cd8f --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/features/feet/FeetFeatureRenderer.java @@ -0,0 +1,58 @@ +package net.sevenstars.middleearth.entity.npcs.features.feet; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.OverlayTexture; +import net.minecraft.client.render.VertexConsumer; +import net.minecraft.client.render.VertexConsumerProvider; +import net.minecraft.client.render.entity.feature.FeatureRenderer; +import net.minecraft.client.render.entity.feature.FeatureRendererContext; +import net.minecraft.client.render.entity.model.EntityModel; +import net.minecraft.client.render.entity.model.LoadedEntityModels; +import net.minecraft.client.render.entity.state.LivingEntityRenderState; +import net.minecraft.client.texture.Sprite; +import net.minecraft.client.texture.SpriteAtlasTexture; +import net.minecraft.client.util.math.MatrixStack; +import net.sevenstars.middleearth.client.ModTexturedRenderLayers; +import net.sevenstars.middleearth.entity.ModEntityModelLayers; +import net.sevenstars.middleearth.entity.npcs.NpcEntityModel; +import net.sevenstars.middleearth.entity.npcs.NpcEntityRenderState; +import net.sevenstars.middleearth.registries.AtlasesME; + +@Environment(EnvType.CLIENT) +public class FeetFeatureRenderer extends FeatureRenderer { + private final EntityModel feetModel; + private final SpriteAtlasTexture skinAtlasTexture; + + public FeetFeatureRenderer(FeatureRendererContext context, LoadedEntityModels loader) { + super(context); + this.feetModel = new FeetModel(loader.getModelPart(ModEntityModelLayers.NPC_ENTITY_FEET)); + skinAtlasTexture = AtlasesME.getAtlasFromPath(ModTexturedRenderLayers.CHARACTER_SKIN_ATLAS_TEXTURE); + } + + @Override + public void render(MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, NpcEntityRenderState state, float limbAngle, float limbDistance) { + feetModel.setAngles(state); + + if(!state.canShowFeet) + return; + + VertexConsumer vertexConsumer = vertexConsumers.getBuffer(ModTexturedRenderLayers.getCharacterSkinsRenderLayer()); + + int overlay = state.hurt ? getOverlay(state, 0f) : OverlayTexture.DEFAULT_UV; + + Sprite sprite = skinAtlasTexture.getSprite(AtlasesME.prefixAtlas(state.feetId, AtlasesME.CHARACTER_SKINS)); + renderModel(sprite, matrices, vertexConsumer, light, overlay); + } + + public static int getOverlay(LivingEntityRenderState state, float whiteOverlayProgress) { + return OverlayTexture.packUv(OverlayTexture.getU(whiteOverlayProgress), OverlayTexture.getV(state.hurt)); + } + + private void renderModel(Sprite sprite, MatrixStack matrices, VertexConsumer vertexConsumer, int light, int overlay){ + if(sprite != null){ + VertexConsumer newLayerVertexConsumer = sprite.getTextureSpecificVertexConsumer(vertexConsumer); + feetModel.render(matrices, newLayerVertexConsumer, light, overlay); + } + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/features/feet/FeetModel.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/features/feet/FeetModel.java new file mode 100644 index 0000000000..f26ec89881 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/features/feet/FeetModel.java @@ -0,0 +1,69 @@ +package net.sevenstars.middleearth.entity.npcs.features.feet; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.model.*; +import net.minecraft.client.render.entity.model.EntityModel; + +import net.minecraft.util.math.MathHelper; +import net.sevenstars.middleearth.entity.npcs.NpcEntityRenderState; + +@Environment(EnvType.CLIENT) +public class FeetModel extends EntityModel { + public final ModelPart toeCubeLeft; + public final ModelPart toeCubeRight; + + public final ModelPart rightLeg; + public final ModelPart leftLeg; + + public FeetModel(ModelPart modelPart) { + super(modelPart); + + this.leftLeg = modelPart.getChild("left_leg"); + this.rightLeg = modelPart.getChild("right_leg"); + + this.toeCubeLeft = leftLeg.getChild("feet"); + this.toeCubeRight = rightLeg.getChild("feet"); + } + + public static TexturedModelData getTexturedModelData() { + ModelData modelData = new ModelData(); + ModelPartData modelPartData = modelData.getRoot(); + + var rightLeg = modelPartData.addChild("right_leg", ModelPartBuilder.create().uv(16,16).cuboid(-2.0F, 0.0F, -2.0F, 4.0F, 12.0F, 4.0F, Dilation.NONE), ModelTransform.origin(-1.9F, 12.0F, 0.0F)); + var leftLeg = modelPartData.addChild("left_leg", ModelPartBuilder.create().uv(16,16).cuboid(-2.0F, 0.0F, -2.0F, 4.0F, 12.0F, 4.0F, Dilation.NONE), ModelTransform.origin(1.9F, 12.0F, 0.0F)); + + rightLeg.addChild("feet", + ModelPartBuilder.create().uv(0, 4).mirrored().cuboid(0,0,0,4,2,2, Dilation.NONE), + ModelTransform.origin(-2f,10f,-4f)); + + leftLeg.addChild("feet", + ModelPartBuilder.create().uv(0, 4).cuboid(0,0,0,4,2,2, Dilation.NONE), + ModelTransform.origin(-2f,10f,-4f)); + + return TexturedModelData.of(modelData, 16, 16); + } + + @Override + public void setAngles(NpcEntityRenderState state) { + super.setAngles(state); + + float g = state.limbSwingAnimationProgress; + float h = state.limbSwingAmplitude; + + this.rightLeg.pitch = MathHelper.cos(g * 0.6662F) * 1.4F * h / state.limbAmplitudeInverse; + this.leftLeg.pitch = MathHelper.cos(g * 0.6662F + (float)Math.PI) * 1.4F * h / state.limbAmplitudeInverse; + this.rightLeg.yaw = 0.005F; + this.leftLeg.yaw = -0.005F; + this.rightLeg.roll = 0.005F; + this.leftLeg.roll = -0.005F; + if (state.hasVehicle) { + this.rightLeg.pitch = -1.4137167F; + this.rightLeg.yaw = ((float)Math.PI / 10F); + this.rightLeg.roll = 0.07853982F; + this.leftLeg.pitch = -1.4137167F; + this.leftLeg.yaw = (-(float)Math.PI / 10F); + this.leftLeg.roll = -0.07853982F; + } + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/features/hair/HairFeatureRenderer.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/features/hair/HairFeatureRenderer.java index 84db131d95..42f2150a78 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/features/hair/HairFeatureRenderer.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/features/hair/HairFeatureRenderer.java @@ -14,13 +14,11 @@ import net.minecraft.client.texture.SpriteAtlasTexture; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.Identifier; -import net.minecraft.util.math.ColorHelper; import net.sevenstars.middleearth.client.ModTexturedRenderLayers; import net.sevenstars.middleearth.entity.ModEntityModelLayers; import net.sevenstars.middleearth.entity.npcs.NpcEntityModel; import net.sevenstars.middleearth.entity.npcs.NpcEntityRenderState; -import net.sevenstars.middleearth.entity.npcs.NpcEntityRenderer; -import net.sevenstars.middleearth.resources.AtlasesME; +import net.sevenstars.middleearth.registries.AtlasesME; @Environment(EnvType.CLIENT) @@ -43,7 +41,7 @@ public void render(MatrixStack matrices, VertexConsumerProvider vertexConsumers, // TODO : Disable the beard based on the helmet /* - if (entity.getEquippedStack(EquipmentSlot.HEAD).isIn(TagKey.of(RegistryKeys.ITEM, Identifier.of(MiddleEarth.MOD_ID, "helmet_hides_dwarf_beard")))){ + if (entity.getEquippedStack(EquipmentSlot.HEAD).isIn(TagK°.of(RegistryKeys.ITEM, Identifier.of(MiddleEarth.MOD_ID, "helmet_hides_dwarf_beard")))){ */ if(hairAddonTextureId == null && beardAddonTextureId == null){ @@ -52,40 +50,29 @@ public void render(MatrixStack matrices, VertexConsumerProvider vertexConsumers, } else if (!entityModel.getRootPart().visible){ entityModel.getRootPart().visible = true; } - entityModel.setAngles(state); VertexConsumer vertexConsumer = vertexConsumers.getBuffer(ModTexturedRenderLayers.getCharacterHairsRenderLayer()); - boolean bl = state.invisible; - boolean bl2 = !bl && !state.invisibleToPlayer; - int k = bl2 ? 654311423 : -1; - int color = ColorHelper.mix(k, this.getMixColor(state)); int overlay = state.hurt ? getOverlay(state, 0f) : OverlayTexture.DEFAULT_UV; if(hairAddonTextureId != null && state.canShowHair){ Sprite sprite = hairAtlasTexture.getSprite(AtlasesME.prefixAtlas(state.hairAddonId, AtlasesME.CHARACTER_HAIRS)); - renderModel(sprite, matrices, vertexConsumer, light, overlay, color); + renderModel(sprite, matrices, vertexConsumer, light, overlay); } if(beardAddonTextureId != null && state.canShowBeard){ Sprite sprite = hairAtlasTexture.getSprite(AtlasesME.prefixAtlas(state.beardAddonId, AtlasesME.CHARACTER_HAIRS)); - renderModel(sprite, matrices, vertexConsumer, light, overlay, color); + renderModel(sprite, matrices, vertexConsumer, light, overlay); } } - private void renderModel(Sprite sprite, MatrixStack matrices, VertexConsumer vertexConsumer, int light, int overlay, int color){ + private void renderModel(Sprite sprite, MatrixStack matrices, VertexConsumer vertexConsumer, int light, int overlay){ if(sprite != null){ VertexConsumer newLayerVertexConsumer = sprite.getTextureSpecificVertexConsumer(vertexConsumer); - hairModel.render(matrices, newLayerVertexConsumer, light, overlay, color); + hairModel.render(matrices, newLayerVertexConsumer, light, overlay); } } - protected int getMixColor(NpcEntityRenderState state) { - if(state.hurt) - return NpcEntityRenderer.HURT_COLOR; - return -1; - } - public static int getOverlay(LivingEntityRenderState state, float whiteOverlayProgress) { return OverlayTexture.packUv(OverlayTexture.getU(whiteOverlayProgress), OverlayTexture.getV(state.hurt)); } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/features/hair/HairModel.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/features/hair/HairModel.java index 169bb15324..38ce93c705 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/features/hair/HairModel.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/features/hair/HairModel.java @@ -29,7 +29,7 @@ public static TexturedModelData getTexturedModelData() { ModelPartData hairGroup = modelPartData.addChild("hair", ModelPartBuilder.create(), ModelTransform.origin(0.0F, 0.0F, 0.0F)); hairGroup.addChild("hairBase", ModelPartBuilder.create().uv(0, 0).cuboid(-4.0f, 0f, -4.0f, 8, 11, 8, Dilation.NONE), ModelTransform.origin(0.0F, 0.0F, 0.0F)); hairGroup.addChild("hairHat", ModelPartBuilder.create().uv(32, 0).cuboid(-4.0f, 1f, -4f, 8, 11, 8, Dilation.NONE.add(0.5f)), ModelTransform.origin(0.0F, 0.0F, 0.0F)); - hairGroup.addChild("largeBeard", ModelPartBuilder.create().uv(38, 39).cuboid(-6.5F, -2.5F, -4.1F,14.0F, 25.0F, -0.5F, Dilation.NONE.add(0.3f)), ModelTransform.NONE); + hairGroup.addChild("largeBeard", ModelPartBuilder.create().uv(38, 39).cuboid(-6.5F, -2.5F, -4.1F,14.0F, 25.0F, -0.5F, Dilation.NONE.add(0.25f)), ModelTransform.NONE); return TexturedModelData.of(modelData, 64, 64); } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/features/nose/NoseFeatureRenderer.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/features/nose/NoseFeatureRenderer.java index 66d2c24df1..3612de7f1c 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/features/nose/NoseFeatureRenderer.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/npcs/features/nose/NoseFeatureRenderer.java @@ -13,13 +13,11 @@ import net.minecraft.client.texture.Sprite; import net.minecraft.client.texture.SpriteAtlasTexture; import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.util.math.ColorHelper; import net.sevenstars.middleearth.client.ModTexturedRenderLayers; import net.sevenstars.middleearth.entity.ModEntityModelLayers; import net.sevenstars.middleearth.entity.npcs.NpcEntityModel; import net.sevenstars.middleearth.entity.npcs.NpcEntityRenderState; -import net.sevenstars.middleearth.entity.npcs.NpcEntityRenderer; -import net.sevenstars.middleearth.resources.AtlasesME; +import net.sevenstars.middleearth.registries.AtlasesME; @Environment(EnvType.CLIENT) public class NoseFeatureRenderer extends FeatureRenderer { @@ -36,33 +34,22 @@ public NoseFeatureRenderer(FeatureRendererContext { public final ModelPart largeHighCube; public final ModelPart largeCenterCube; - public NoseModel(ModelPart modelPart) { super(modelPart); this.noseRoot = modelPart.getChild("noseRoot"); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/projectile/WebbedEntity.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/projectile/WebbedEntity.java index e8abd62833..365600807f 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/projectile/WebbedEntity.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/projectile/WebbedEntity.java @@ -1,13 +1,11 @@ package net.sevenstars.middleearth.entity.projectile; -import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.minecraft.block.BlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.effect.StatusEffectInstance; import net.minecraft.entity.effect.StatusEffects; -import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; @@ -15,7 +13,6 @@ import net.minecraft.particle.ParticleTypes; import net.minecraft.registry.RegistryKeys; import net.minecraft.registry.entry.RegistryEntry; -import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.server.world.ServerWorld; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.hit.EntityHitResult; @@ -23,11 +20,8 @@ import net.minecraft.world.World; import net.minecraft.world.gen.feature.ConfiguredFeature; import net.sevenstars.middleearth.block.registration.ModNatureBlocks; -import net.sevenstars.middleearth.config.ModServerConfigs; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.sevenstars.middleearth.entity.ModEntityTypeTags; -import net.sevenstars.middleearth.network.packets.S2C.PacketForceOnboardingScreen; -import net.sevenstars.middleearth.network.packets.S2C.PacketLivingEntityData; import net.sevenstars.middleearth.statusEffects.ModStatusEffects; import net.sevenstars.middleearth.world.features.vegetation.ModVegetationConfiguredFeatures; @@ -42,7 +36,7 @@ public WebbedEntity(EntityType entityType, World world) } public WebbedEntity(World world, LivingEntity owner, float dmg) { - super(ModEntities.WEB, owner, world, new ItemStack(Items.COBWEB)); + super(EntitiesME.WEB, owner, world, new ItemStack(Items.COBWEB)); this.damage = dmg; if(feature == null) { if(!this.getWorld().isClient) { diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/projectile/boulder/BoulderEntity.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/projectile/boulder/BoulderEntity.java index 9e1d3ce748..4081fcd7c6 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/projectile/boulder/BoulderEntity.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/projectile/boulder/BoulderEntity.java @@ -1,7 +1,7 @@ package net.sevenstars.middleearth.entity.projectile.boulder; import net.minecraft.server.world.ServerWorld; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; import net.minecraft.entity.LivingEntity; @@ -18,7 +18,7 @@ public BoulderEntity(EntityType type, World world) { } public BoulderEntity(World world, double x, double y, double z) { - super(ModEntities.BOULDER, x, y, z, world); + super(EntitiesME.BOULDER, x, y, z, world); } @Override diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/projectile/pebble/PebbleEntity.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/projectile/pebble/PebbleEntity.java index 2ea09e28a2..cda75e8d26 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/projectile/pebble/PebbleEntity.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/projectile/pebble/PebbleEntity.java @@ -2,7 +2,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.server.world.ServerWorld; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.sevenstars.middleearth.entity.projectile.AbstractProjectileEntity; import net.sevenstars.middleearth.item.ResourceItemsME; import net.minecraft.entity.Entity; @@ -20,7 +20,7 @@ public PebbleEntity(EntityType entityType, World world) } public PebbleEntity(World world, LivingEntity owner, float dmg) { - super(ModEntities.PEBBLE, owner, world, new ItemStack(ResourceItemsME.PEBBLE)); + super(EntitiesME.PEBBLE, owner, world, new ItemStack(ResourceItemsME.PEBBLE)); this.damage = dmg; } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/projectile/pinecone/LitPineconeEntity.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/projectile/pinecone/LitPineconeEntity.java index fecdac314f..03e28f4d2b 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/projectile/pinecone/LitPineconeEntity.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/projectile/pinecone/LitPineconeEntity.java @@ -2,7 +2,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.server.world.ServerWorld; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.sevenstars.middleearth.entity.projectile.AbstractProjectileEntity; import net.sevenstars.middleearth.item.ResourceItemsME; import net.minecraft.entity.Entity; @@ -21,7 +21,7 @@ public LitPineconeEntity(EntityType entityType, Wor } public LitPineconeEntity(World world, LivingEntity owner, float dmg) { - super(ModEntities.LIT_PINECONE, owner, world, new ItemStack(ResourceItemsME.LIT_PINECONE)); + super(EntitiesME.LIT_PINECONE, owner, world, new ItemStack(ResourceItemsME.LIT_PINECONE)); this.damage = dmg; } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/projectile/pinecone/PineconeEntity.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/projectile/pinecone/PineconeEntity.java index c9067eeda8..d4027559d5 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/projectile/pinecone/PineconeEntity.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/projectile/pinecone/PineconeEntity.java @@ -1,7 +1,7 @@ package net.sevenstars.middleearth.entity.projectile.pinecone; import net.minecraft.item.ItemStack; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.sevenstars.middleearth.entity.projectile.AbstractProjectileEntity; import net.sevenstars.middleearth.item.ResourceItemsME; import net.minecraft.entity.EntityType; @@ -18,7 +18,7 @@ public PineconeEntity(EntityType entityType, World wor } public PineconeEntity(World world, LivingEntity owner, float dmg) { - super(ModEntities.PINECONE, owner, world, new ItemStack(ResourceItemsME.PINECONE)); + super(EntitiesME.PINECONE, owner, world, new ItemStack(ResourceItemsME.PINECONE)); this.damage = dmg; } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/projectile/spear/SpearEntity.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/projectile/spear/SpearEntity.java index 12de3fd0af..5c156bb8b0 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/projectile/spear/SpearEntity.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/projectile/spear/SpearEntity.java @@ -1,6 +1,6 @@ package net.sevenstars.middleearth.entity.projectile.spear; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.sevenstars.middleearth.item.WeaponItemsME; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.Entity; @@ -30,7 +30,7 @@ public SpearEntity(EntityType entityType, World world) { } public SpearEntity(World world, ItemStack itemStack, LivingEntity owner, float dmg) { - super(ModEntities.SPEAR, owner, world, itemStack, null); + super(EntitiesME.SPEAR, owner, world, itemStack, null); dataTracker.set(ITEM_STACK_DATA, itemStack); this.damage = dmg; } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/SpiderVariant.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/SpiderVariant.java index 1064157477..9809814006 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/SpiderVariant.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/SpiderVariant.java @@ -12,6 +12,7 @@ import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.registry.entry.RegistryFixedCodec; import net.minecraft.util.AssetInfo; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; import java.util.List; @@ -24,9 +25,9 @@ public record SpiderVariant(SpiderAssetInfo assetInfo, SpawnConditionSelectors s .apply(instance, SpiderVariant::new) ); - public static final Codec> ENTRY_CODEC = RegistryFixedCodec.of(SpiderVariants.KEY); + public static final Codec> ENTRY_CODEC = RegistryFixedCodec.of(DynamicRegistriesME.SPIDER_VARIANTS); - public static final PacketCodec> PACKET_CODEC = PacketCodecs.registryEntry(SpiderVariants.KEY); + public static final PacketCodec> PACKET_CODEC = PacketCodecs.registryEntry(DynamicRegistriesME.SPIDER_VARIANTS); private SpiderVariant(SpiderAssetInfo assetInfo) { this(assetInfo, SpawnConditionSelectors.EMPTY); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/SpiderVariants.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/SpiderVariants.java deleted file mode 100644 index 3a756110ea..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/SpiderVariants.java +++ /dev/null @@ -1,58 +0,0 @@ -package net.sevenstars.middleearth.entity.spider; - -import net.fabricmc.fabric.api.event.registry.DynamicRegistries; -import net.minecraft.entity.spawn.BiomeSpawnCondition; -import net.minecraft.entity.spawn.SpawnConditionSelectors; -import net.minecraft.registry.Registerable; -import net.minecraft.registry.Registry; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.RegistryKeys; -import net.minecraft.registry.entry.RegistryEntryList; -import net.minecraft.registry.tag.TagKey; -import net.minecraft.util.AssetInfo; -import net.minecraft.util.Identifier; -import net.minecraft.world.biome.Biome; -import net.sevenstars.middleearth.MiddleEarth; - -public class SpiderVariants { - public final static String KEY_PATH = "spider_variants"; - private static final String TEXTURE_PATH = "entities/spiders/"; - private static final String ENTITY_NAME = "_shelobite_"; - public static final RegistryKey> KEY = RegistryKey.ofRegistry(Identifier.of(MiddleEarth.MOD_ID, KEY_PATH)); - - public static final RegistryKey MIRKWOOD = of("mirkwood"); - public static final RegistryKey CAVE = of("cave"); - public static final RegistryKey MORDOR = of("mordor"); - public static final RegistryKey DEFAULT = MIRKWOOD; - - private static RegistryKey of(String id) { - return RegistryKey.of(SpiderVariants.KEY, Identifier.of(MiddleEarth.MOD_ID, id)); - } - - private static void register(Registerable registry, RegistryKey key, String textureName, TagKey biomeTag, int priority) { - register(registry, key, textureName, createSpawnConditions(registry.getRegistryLookup(RegistryKeys.BIOME).getOrThrow(biomeTag), priority)); - } - - private static void register(Registerable registry, RegistryKey key, String textureName, SpawnConditionSelectors spawnConditions) { - registry.register(key, new SpiderVariant(new SpiderVariant.SpiderAssetInfo( - new AssetInfo(Identifier.of(MiddleEarth.MOD_ID, TEXTURE_PATH + textureName + ENTITY_NAME + "larva")), - new AssetInfo(Identifier.of(MiddleEarth.MOD_ID, TEXTURE_PATH + textureName + ENTITY_NAME + "scuttler")), - new AssetInfo(Identifier.of(MiddleEarth.MOD_ID, TEXTURE_PATH + textureName + "_spawn_of_shelob"))), - spawnConditions)); - } - - private static SpawnConditionSelectors createSpawnConditions(RegistryEntryList requiredBiomes, int priority) { - return SpawnConditionSelectors.createSingle(new BiomeSpawnCondition(requiredBiomes), priority); - } - - public static void bootstrap(Registerable registry) { - register(registry, MIRKWOOD, "mirkwood", SpawnConditionSelectors.createFallback(0)); - register(registry, CAVE, "blind", TagKey.of(RegistryKeys.BIOME, Identifier.of(MiddleEarth.MOD_ID, "is_cave")), 1); - register(registry, MORDOR, "mordor", TagKey.of(RegistryKeys.BIOME, Identifier.of(MiddleEarth.MOD_ID, "is_mordor")), 2); - } - - public static void register(){ - MiddleEarth.LOGGER.logDebugMsg("Registering Spider Variants for " + MiddleEarth.MOD_ID); - DynamicRegistries.registerSynced(KEY, SpiderVariant.CODEC); - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/larva/ShelobiteLarvaEntity.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/larva/ShelobiteLarvaEntity.java index 645ba222ec..68508d6287 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/larva/ShelobiteLarvaEntity.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/larva/ShelobiteLarvaEntity.java @@ -1,7 +1,6 @@ package net.sevenstars.middleearth.entity.spider.larva; import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; import net.minecraft.entity.*; import net.minecraft.entity.spawn.SpawnContext; import net.minecraft.registry.RegistryKeys; @@ -13,7 +12,6 @@ import net.minecraft.world.LocalDifficulty; import net.minecraft.world.ServerWorldAccess; import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.block.registration.ModNatureBlocks; import net.minecraft.entity.EntityType; import net.minecraft.entity.ai.goal.*; import net.minecraft.entity.ai.pathing.EntityNavigation; @@ -36,11 +34,10 @@ import net.minecraft.world.World; import net.sevenstars.middleearth.entity.ModTrackedDataHandlerRegistry; import net.sevenstars.middleearth.entity.goals.FollowDifferentMobGoal; -import net.sevenstars.middleearth.entity.spider.MirkwoodSpiderVariants; import net.sevenstars.middleearth.entity.spider.SpiderVariant; -import net.sevenstars.middleearth.entity.spider.SpiderVariants; import net.sevenstars.middleearth.entity.spider.scuttler.ShelobiteScuttlerEntity; -import net.sevenstars.middleearth.entity.spider.spawn.SpawnOfShelobEntity; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; +import net.sevenstars.middleearth.registries.content.spidervariants.SpiderVariantRegistry; import org.jetbrains.annotations.Nullable; import java.util.Optional; @@ -87,7 +84,7 @@ public EntityData initialize(ServerWorldAccess world, LocalDifficulty difficulty if (entityData instanceof ShelobiteScuttlerEntity.SpiderData spiderData) { this.setVariant(spiderData.variant); } else { - Optional> optional = Variants.select(SpawnContext.of(world, this.getBlockPos()), SpiderVariants.KEY); + Optional> optional = Variants.select(SpawnContext.of(world, this.getBlockPos()), DynamicRegistriesME.SPIDER_VARIANTS); if (optional.isPresent()) { this.setVariant(optional.get()); entityData = new ShelobiteScuttlerEntity.SpiderData(optional.get()); @@ -107,7 +104,7 @@ protected EntityNavigation createNavigation(World world) { protected void initDataTracker(DataTracker.Builder builder) { super.initDataTracker(builder); - RegistryEntry spiderVariantRegistryEntry = Variants.getOrDefaultOrThrow(this.getRegistryManager(), SpiderVariants.DEFAULT); + RegistryEntry spiderVariantRegistryEntry = Variants.getOrDefaultOrThrow(this.getRegistryManager(), SpiderVariantRegistry.DEFAULT); builder.add(VARIANT, spiderVariantRegistryEntry); builder.add(ATTACK_FLAG, false); builder.add(SPIDER_FLAGS, (byte)0); @@ -227,7 +224,7 @@ protected void writeCustomData(WriteView view) { @Override protected void readCustomData(ReadView view) { super.readCustomData(view); - Variants.readVariantFromNbt(view, SpiderVariants.KEY).ifPresent(this::setVariant); + Variants.readVariantFromNbt(view, DynamicRegistriesME.SPIDER_VARIANTS).ifPresent(this::setVariant); } static { diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/scuttler/ShelobiteScuttlerBrain.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/scuttler/ShelobiteScuttlerBrain.java index bb589247ee..54076771f0 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/scuttler/ShelobiteScuttlerBrain.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/scuttler/ShelobiteScuttlerBrain.java @@ -13,7 +13,7 @@ import net.minecraft.sound.SoundEvents; import net.minecraft.util.math.GlobalPos; import net.minecraft.util.math.intprovider.UniformIntProvider; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.sevenstars.middleearth.entity.tasks.SpiderPounceTask; import java.util.Optional; @@ -119,7 +119,7 @@ private static RandomTask getFollowTasks() { return new RandomTask<>( ImmutableList.of( Pair.of(LookAtMobTask.create(EntityType.PLAYER, 8.0F), 1), - Pair.of(LookAtMobTask.create(ModEntities.SHELOBITE_SCUTTLER, 8.0F), 1), + Pair.of(LookAtMobTask.create(EntitiesME.SHELOBITE_SCUTTLER, 8.0F), 1), Pair.of(LookAtMobTask.create(8.0F), 1), Pair.of(new WaitTask(30, 60), 1) ) @@ -130,7 +130,7 @@ private static RandomTask getIdleTasks() { return new RandomTask<>( ImmutableList.of( Pair.of(StrollTask.create(0.6F), 2), - Pair.of(FindEntityTask.create(ModEntities.SHELOBITE_SCUTTLER, 8, MemoryModuleType.INTERACTION_TARGET, 0.6F, 2), 2), + Pair.of(FindEntityTask.create(EntitiesME.SHELOBITE_SCUTTLER, 8, MemoryModuleType.INTERACTION_TARGET, 0.6F, 2), 2), Pair.of(GoToPosTask.create(MemoryModuleType.HOME, 0.6F, 2, 100), 2), Pair.of(GoAroundTask.create(MemoryModuleType.HOME, 0.6F, 5), 2), Pair.of(new WaitTask(30, 60), 1) diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/scuttler/ShelobiteScuttlerEntity.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/scuttler/ShelobiteScuttlerEntity.java index 123103a032..392262aaf1 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/scuttler/ShelobiteScuttlerEntity.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/scuttler/ShelobiteScuttlerEntity.java @@ -44,7 +44,8 @@ import net.sevenstars.middleearth.entity.goals.SpiderPonceAtTargetGoal; import net.sevenstars.middleearth.entity.spider.Pouncer; import net.sevenstars.middleearth.entity.spider.SpiderVariant; -import net.sevenstars.middleearth.entity.spider.SpiderVariants; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; +import net.sevenstars.middleearth.registries.content.spidervariants.SpiderVariantRegistry; import org.jetbrains.annotations.Nullable; import java.util.Optional; @@ -111,7 +112,7 @@ public EntityData initialize(ServerWorldAccess world, LocalDifficulty difficulty if (entityData instanceof SpiderData spiderData) { this.setVariant(spiderData.variant); } else { - Optional> optional = Variants.select(SpawnContext.of(world, this.getBlockPos()), SpiderVariants.KEY); + Optional> optional = Variants.select(SpawnContext.of(world, this.getBlockPos()), DynamicRegistriesME.SPIDER_VARIANTS); if (optional.isPresent()) { this.setVariant(optional.get()); entityData = new SpiderData(optional.get()); @@ -153,7 +154,7 @@ protected EntityNavigation createNavigation(World world) { protected void initDataTracker(DataTracker.Builder builder) { super.initDataTracker(builder); - RegistryEntry spiderVariantRegistryEntry = Variants.getOrDefaultOrThrow(this.getRegistryManager(), SpiderVariants.DEFAULT); + RegistryEntry spiderVariantRegistryEntry = Variants.getOrDefaultOrThrow(this.getRegistryManager(), SpiderVariantRegistry.DEFAULT); builder.add(VARIANT, spiderVariantRegistryEntry); builder.add(SPIDER_FLAGS, (byte)0); builder.add(BITE_FLAG, 0); @@ -335,7 +336,7 @@ protected void writeCustomData(WriteView view) { @Override protected void readCustomData(ReadView view) { super.readCustomData(view); - Variants.readVariantFromNbt(view, SpiderVariants.KEY).ifPresent(this::setVariant); + Variants.readVariantFromNbt(view, DynamicRegistriesME.SPIDER_VARIANTS).ifPresent(this::setVariant); } static { diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/spawn/SpawnOfShelobEntity.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/spawn/SpawnOfShelobEntity.java index 152175ee77..03af0fd49a 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/spawn/SpawnOfShelobEntity.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/spawn/SpawnOfShelobEntity.java @@ -39,17 +39,18 @@ import net.minecraft.world.World; import net.sevenstars.middleearth.MiddleEarth; import net.sevenstars.middleearth.entity.ModTrackedDataHandlerRegistry; -import net.sevenstars.middleearth.entity.goals.ShieldAgainstProjectileGoal; -import net.sevenstars.middleearth.entity.goals.interfaces.CooldownRangedAttackMob; import net.sevenstars.middleearth.entity.goals.PounceRetreatGoal; +import net.sevenstars.middleearth.entity.goals.ShieldAgainstProjectileGoal; import net.sevenstars.middleearth.entity.goals.SmartProjectileAttackGoal; import net.sevenstars.middleearth.entity.goals.SpiderPonceAtTargetGoal; +import net.sevenstars.middleearth.entity.goals.interfaces.CooldownRangedAttackMob; import net.sevenstars.middleearth.entity.goals.interfaces.Shielder; import net.sevenstars.middleearth.entity.projectile.WebbedEntity; import net.sevenstars.middleearth.entity.spider.Pouncer; import net.sevenstars.middleearth.entity.spider.SpiderVariant; -import net.sevenstars.middleearth.entity.spider.SpiderVariants; import net.sevenstars.middleearth.entity.spider.scuttler.ShelobiteScuttlerEntity; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; +import net.sevenstars.middleearth.registries.content.spidervariants.SpiderVariantRegistry; import org.jetbrains.annotations.Nullable; import java.util.Optional; @@ -115,7 +116,7 @@ public EntityData initialize(ServerWorldAccess world, LocalDifficulty difficulty if (entityData instanceof ShelobiteScuttlerEntity.SpiderData spiderData) { this.setVariant(spiderData.variant); } else { - Optional> optional = Variants.select(SpawnContext.of(world, this.getBlockPos()), SpiderVariants.KEY); + Optional> optional = Variants.select(SpawnContext.of(world, this.getBlockPos()), DynamicRegistriesME.SPIDER_VARIANTS); if (optional.isPresent()) { this.setVariant(optional.get()); entityData = new ShelobiteScuttlerEntity.SpiderData(optional.get()); @@ -139,7 +140,7 @@ protected void initDataTracker(DataTracker.Builder builder) { builder.add(BITE_FLAG, 0); builder.add(POUNCE_FLAG, 0); builder.add(BLOCK_FLAG, 0); - RegistryEntry spiderVariantRegistryEntry = Variants.getOrDefaultOrThrow(this.getRegistryManager(), SpiderVariants.DEFAULT); + RegistryEntry spiderVariantRegistryEntry = Variants.getOrDefaultOrThrow(this.getRegistryManager(), SpiderVariantRegistry.DEFAULT); builder.add(VARIANT, spiderVariantRegistryEntry); } @@ -365,7 +366,7 @@ protected void writeCustomData(WriteView view) { @Override protected void readCustomData(ReadView view) { super.readCustomData(view); - Variants.readVariantFromNbt(view, SpiderVariants.KEY).ifPresent(this::setVariant); + Variants.readVariantFromNbt(view, DynamicRegistriesME.SPIDER_VARIANTS).ifPresent(this::setVariant); } static { diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/spawn/SpawnOfShelobRenderer.java b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/spawn/SpawnOfShelobRenderer.java index aedba90bb6..95ca549230 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/spawn/SpawnOfShelobRenderer.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/entity/spider/spawn/SpawnOfShelobRenderer.java @@ -4,7 +4,6 @@ import net.minecraft.client.render.entity.MobEntityRenderer; import net.minecraft.client.render.entity.model.EntityModelLayer; import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; import net.sevenstars.middleearth.entity.ModEntityModelLayers; public class SpawnOfShelobRenderer extends MobEntityRenderer { diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/event/ModEvents.java b/middle-earth/src/main/java/net/sevenstars/middleearth/event/ModEvents.java index a2453571dd..8f569ad14a 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/event/ModEvents.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/event/ModEvents.java @@ -13,7 +13,6 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; -import net.minecraft.item.PlayerHeadItem; import net.minecraft.registry.RegistryKeys; import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.registry.tag.BlockTags; diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/gui/artisantable/ArtisanTableScreenHandler.java b/middle-earth/src/main/java/net/sevenstars/middleearth/gui/artisantable/ArtisanTableScreenHandler.java index 7a182e3021..07940f4338 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/gui/artisantable/ArtisanTableScreenHandler.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/gui/artisantable/ArtisanTableScreenHandler.java @@ -1,7 +1,6 @@ package net.sevenstars.middleearth.gui.artisantable; import com.google.common.collect.Lists; -import com.mojang.authlib.GameProfile; import net.minecraft.recipe.ServerRecipeManager; import net.sevenstars.middleearth.block.registration.ModDecorativeBlocks; import net.sevenstars.middleearth.block.special.forge.MultipleStackRecipeInput; @@ -10,9 +9,8 @@ import net.sevenstars.middleearth.item.dataComponents.ArtisanDataComponent; import net.sevenstars.middleearth.recipe.ArtisanRecipe; import net.sevenstars.middleearth.recipe.ModRecipes; -import net.sevenstars.middleearth.resources.datas.Disposition; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; import net.minecraft.component.DataComponentTypes; -import net.minecraft.component.type.ProfileComponent; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.inventory.CraftingResultInventory; @@ -222,9 +220,9 @@ private void updateInput(Inventory inventory) { ArrayList> filteredRecipes = new ArrayList<>(); for(RecipeEntry recipeEntry : this.availableRecipes) { if (recipeEntry.value().category.equals(currentCategory)){ - if (Disposition.valueOf(recipeEntry.value().disposition.toUpperCase()) == Disposition.NEUTRAL){ + if (DispositionType.valueOf(recipeEntry.value().disposition.toUpperCase()) == DispositionType.NEUTRAL){ filteredRecipes.add(recipeEntry); - } else if(Disposition.valueOf(recipeEntry.value().disposition.toUpperCase()) == Disposition.valueOf(this.disposition.toUpperCase()) || this.isCreative) { + } else if(DispositionType.valueOf(recipeEntry.value().disposition.toUpperCase()) == DispositionType.valueOf(this.disposition.toUpperCase()) || this.isCreative) { filteredRecipes.add(recipeEntry); } } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/gui/onboarding/onboarding_faction/OnboardingFactionScreen.java b/middle-earth/src/main/java/net/sevenstars/middleearth/gui/onboarding/onboarding_faction/OnboardingFactionScreen.java index 8dc7c86b04..c8c75cecde 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/gui/onboarding/onboarding_faction/OnboardingFactionScreen.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/gui/onboarding/onboarding_faction/OnboardingFactionScreen.java @@ -47,7 +47,7 @@ public class OnboardingFactionScreenElements { public CycledSelectionWidget dispositionSelectionWidget; public CycledSelectionWidget factionSelectionWidget; public CycledSelectionWidget subfactionSelectionWidget; - public ButtonWidget factionRandomizerButton; + public ButtonWidget npcRandomizerButton; public FactionSelectionMapWidget mapWidget; public ButtonWidget mapZoomInButton; public ButtonWidget mapZoomOutButton; @@ -156,10 +156,9 @@ protected void init() { elements.subfactionSelectionWidget.getButtons().forEach(this::addDrawableChild); // PlayerFactionPayload Randomizer - elements.factionRandomizerButton = ButtonWidget.builder(Text.translatable("screen." + MiddleEarth.MOD_ID + ".button.faction_randomizer"), - x -> this.controller.randomizeFaction()).build(); - elements.factionRandomizerButton.setDimensions(52, 18); - addDrawableChild(elements.factionRandomizerButton); + elements.npcRandomizerButton = ButtonWidget.builder(Text.translatable("screen." + MiddleEarth.MOD_ID + ".button.faction_randomizer"), + x -> this.controller.randomizeNpc()).build(); + addDrawableChild(elements.npcRandomizerButton); // Map Widget elements.mapFocusButton = ButtonWidget.builder(Text.translatable("screen." + MiddleEarth.MOD_ID + ".button.focus_current"), this::mapFocusToggle).build(); // TODO @@ -401,10 +400,13 @@ private void renderDisplays(DrawContext context, int mouseX, int mouseY, float d startX -= this.elements.subfactionSelectionWidget.TOTAL_WIDTH / 2; startY = this.elements.informationPanel.startY + this.elements.informationPanel.height - CycledSelectionWidget.TOTAL_HEIGHT; - this.elements.factionRandomizerButton.setPosition(startX, startY); + this.elements.npcRandomizerButton.setDimensions(52, 18); + this.elements.npcRandomizerButton.setPosition(startX - (this.elements.npcRandomizerButton.getWidth() / 2), startY); + context.drawTexture(RenderPipelines.GUI_TEXTURED, BUTTON_UI_IDENTIFIER, - this.elements.factionRandomizerButton.getX() - (this.elements.factionRandomizerButton.getWidth() / 2), this.elements.factionRandomizerButton.getY(), 103, (this.elements.factionRandomizerButton.isFocused() || this.elements.factionRandomizerButton.isMouseOver(mouseX, mouseY)) ? 92 : 74, - this.elements.factionRandomizerButton.getWidth(), this.elements.factionRandomizerButton.getHeight(), 256, 256); + this.elements.npcRandomizerButton.getX(), this.elements.npcRandomizerButton.getY(), 103, this.elements.npcRandomizerButton.isFocused() || this.elements.npcRandomizerButton.isMouseOver(mouseX, mouseY) ? 92 : 74, + this.elements.npcRandomizerButton.getWidth(), this.elements.npcRandomizerButton.getHeight(), 256, 256); + this.elements.npcPreviewWidget.drawCenteredAnchoredBottom(context, startX, startY - 6); } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/gui/onboarding/onboarding_faction/OnboardingFactionScreenController.java b/middle-earth/src/main/java/net/sevenstars/middleearth/gui/onboarding/onboarding_faction/OnboardingFactionScreenController.java index 1ddd74e435..99c8094ea3 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/gui/onboarding/onboarding_faction/OnboardingFactionScreenController.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/gui/onboarding/onboarding_faction/OnboardingFactionScreenController.java @@ -6,6 +6,8 @@ import net.minecraft.client.gui.DrawContext; import net.minecraft.client.network.AbstractClientPlayerEntity; import net.minecraft.client.network.ClientPlayerEntity; +import net.minecraft.client.world.ClientWorld; +import net.minecraft.registry.Registry; import net.minecraft.text.MutableText; import net.minecraft.text.Text; import net.minecraft.util.Formatting; @@ -14,26 +16,25 @@ import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.entity.EntitiesME; import net.sevenstars.middleearth.entity.npcs.NpcEntity; import net.sevenstars.middleearth.exceptions.FactionIdentifierException; import net.sevenstars.middleearth.gui.utils.widgets.searchbar.SearchBarResult; import net.sevenstars.middleearth.gui.utils.widgets.searchbar.SearchBarResultType; import net.sevenstars.middleearth.network.packets.C2S.*; -import net.sevenstars.middleearth.resources.datas.Disposition; -import net.sevenstars.middleearth.resources.datas.FactionType; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; +import net.sevenstars.middleearth.resources.datas.common.FactionType; import net.sevenstars.middleearth.resources.datas.factions.Faction; import net.sevenstars.middleearth.resources.datas.factions.FactionLookup; import net.sevenstars.middleearth.resources.datas.factions.data.SpawnData; import net.sevenstars.middleearth.resources.datas.factions.data.SpawnDataHandler; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcRank; +import net.sevenstars.middleearth.resources.datas.npcs.NpcData; import net.sevenstars.middleearth.resources.datas.races.Race; import org.joml.Vector2d; import org.joml.Vector2i; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Random; +import java.util.*; public class OnboardingFactionScreenController { public static OnboardingFactionScreenController INSTANCE; @@ -45,9 +46,9 @@ public class OnboardingFactionScreenController { OnboardingFactionScreenService service; private float currentDelay; - private HashMap> factions; + private HashMap> factions; - private Disposition selectedDisposition; + private DispositionType selectedDispositionType; private Faction selectedFaction; private Faction selectedSubfaction; private SpawnData selectedSpawn; @@ -75,7 +76,7 @@ public void open(){ if(selectedFaction == null){ screen.elements.mapWidget.zoom(10); screen.elements.mapWidget.isForcingTargetMovement = true; - setDisposition(factions.keySet().stream().findFirst().orElse(Disposition.GOOD)); + setDisposition(factions.keySet().stream().findFirst().orElse(DispositionType.GOOD)); } screen.elements.spawnConfirmButton.active = currentDelay == 0; @@ -89,18 +90,15 @@ public void close(){ private void setupInitialDatas() { factions = new HashMap<>(); - for(Disposition disposition : Disposition.values()){ - List foundFactions = service.getFactionsByDisposition(disposition); - for(int i = 0; i < foundFactions.size(); i++){ - if(!foundFactions.get(i).isJoinable()){ - foundFactions.remove(i); - continue; - } - if(foundFactions.get(i).getFactionType() == FactionType.SUBFACTION) - foundFactions.remove(i); + for(DispositionType dispositionType : DispositionType.values()){ + var unfilteredFactions = service.getFactionsByDisposition(dispositionType); + List filteredFactions = new ArrayList<>(); + for(Faction faction : unfilteredFactions){ + if(faction.isJoinable() && faction.getFactionType() == FactionType.FACTION) + filteredFactions.add(faction); } - if(!foundFactions.isEmpty()) - factions.put(disposition, foundFactions); + if(!filteredFactions.isEmpty()) + factions.put(dispositionType, filteredFactions); } this.searchBarResults = fetchAllPossibleSearchBarResults(); @@ -111,12 +109,12 @@ public void updateScreenInformation() { screen.elements.dispositionSelectionWidget.enableVisuals(false); screen.elements.factionSelectionWidget.enableVisuals(false); screen.elements.subfactionSelectionWidget.enableVisuals(false); - screen.elements.factionRandomizerButton.active = false; + screen.elements.npcRandomizerButton.active = false; } else { screen.elements.dispositionSelectionWidget.enableVisuals(true); screen.elements.factionSelectionWidget.enableVisuals(true); screen.elements.subfactionSelectionWidget.enableVisuals(true); - screen.elements.factionRandomizerButton.active = true; + screen.elements.npcRandomizerButton.active = true; } this.screen.elements.factionName = (selectedFaction.tryGetShortName()).formatted(Formatting.BOLD).formatted(Formatting.DARK_GRAY); @@ -125,17 +123,17 @@ public void updateScreenInformation() { else this.screen.elements.subfactionName = null; - if(this.selectedDisposition != null){ + if(this.selectedDispositionType != null){ this.screen.elements.dispositionSelectionWidget.enableVisuals(true); - this.screen.elements.dispositionSelectionWidget.enableArrows(factions.keySet().size() > 1); - this.screen.elements.dispositionSelectionWidget.setText(selectedDisposition.getName()); + this.screen.elements.dispositionSelectionWidget.enableArrows(factions.size() > 1); + this.screen.elements.dispositionSelectionWidget.setText(selectedDispositionType.getName()); } else { this.screen.elements.dispositionSelectionWidget.enableVisuals(false); } if(this.selectedFaction != null){ this.screen.elements.factionSelectionWidget.enableVisuals(true); - this.screen.elements.factionSelectionWidget.enableArrows(this.factions.get(selectedDisposition).size() > 1); + this.screen.elements.factionSelectionWidget.enableArrows(this.factions.get(selectedDispositionType).size() > 1); this.screen.elements.factionSelectionWidget.setText(this.selectedFaction.tryGetShortName()); } else { this.screen.elements.factionSelectionWidget.enableVisuals(false); @@ -214,9 +212,9 @@ public void screenResize() { public void updateDisposition(int indexDifference){ if(factions.keySet().size() == 1) return; // Doesn't change anything - int currentDispositionIndex = selectedDisposition.ordinal(); + int currentDispositionIndex = selectedDispositionType.ordinal(); for(int i = 0; i < factions.keySet().size(); i++){ - if(factions.keySet().stream().toList().get(i) == selectedDisposition) + if(factions.keySet().stream().toList().get(i) == selectedDispositionType) currentDispositionIndex = i; } currentDispositionIndex += indexDifference; @@ -230,16 +228,16 @@ public void updateDisposition(int indexDifference){ updateScreenInformation(); } - private void setDisposition(Disposition disposition){ - selectedDisposition = disposition; + private void setDisposition(DispositionType dispositionType){ + selectedDispositionType = dispositionType; setFaction(0); } public void updateFaction(int indexDifference){ - int factionListSize = factions.get(selectedDisposition).size(); + int factionListSize = factions.get(selectedDispositionType).size(); if(factionListSize == 1) return; // Doesn't change anything - int currentFactionIndex = factions.get(selectedDisposition).indexOf(selectedFaction); + int currentFactionIndex = factions.get(selectedDispositionType).indexOf(selectedFaction); currentFactionIndex += indexDifference; @@ -255,13 +253,13 @@ public void updateFaction(int indexDifference){ public void setFaction(Integer index){ if(index == null - || selectedDisposition == null - || factions.get(selectedDisposition).size() <= index){ + || selectedDispositionType == null + || factions.get(selectedDispositionType).size() <= index){ selectedFaction = null; return; } - selectedFaction = factions.get(selectedDisposition).get(index); + selectedFaction = factions.get(selectedDispositionType).get(index); setSubfaction(0); setSpawnPoint(0); setRace(0); @@ -305,6 +303,7 @@ public void setSubfaction(Integer index){ selectedSubfaction = selectedFaction.getSubfaction(world, index); setSpawnPoint(0); setRace(0); + updateNpcPreview(); } public void updateRace(int indexDifference){ @@ -342,12 +341,58 @@ private void setRace(Integer index){ } selectedRace = currentFaction.getRaces(world).get(index); + currentNpcEntity = new NpcEntity(EntitiesME.NPC, world); + currentNpcEntity.setNpcData(currentFaction.getRandomNpcDataIdentifier()); + + updateNpcPreview(); } - public void updateNpcPreview(){ + public void updateNpcPreview() { + updateNpcPreview(false); + } + + public void updateNpcPreview(boolean forced){ Faction currentFaction = getCurrentFaction(); - Identifier id = currentFaction.getAllNpcDatas().get(NpcRank.SOLDIER).getFirst(); - this.screen.elements.npcPreviewWidget.updateEntity(id, selectedRace, world); + + if(!forced){ + if(currentNpcEntity != null && currentFaction != null && currentNpcEntity.getFactionId() == currentFaction.getId() && currentNpcEntity.getNpcData().getRace() == selectedRace.getId()) + return; + } + + if(currentFaction == null) + return; + + var idList = currentFaction.getAllNpcDatas().values().stream().flatMap(List::stream).toList(); + + // filter list by race + var optionalNpcRegistry = world.getRegistryManager().getOptional(DynamicRegistriesME.NPC); + if(optionalNpcRegistry.isEmpty()) + return; + + var npcRegistry = optionalNpcRegistry.get(); + + var filteredList = new ArrayList(); + for(Identifier idToFilter : idList){ + if(filterNpc(npcRegistry, idToFilter)) + filteredList.add(idToFilter); + } + + if(filteredList.isEmpty()) + return; + + Identifier id = filteredList.get((new Random()).nextInt(filteredList.size())); + if(world instanceof ClientWorld clientWorld) + this.screen.elements.npcPreviewWidget.updateEntity(id, selectedRace, clientWorld, false); + } + + private boolean filterNpc(Registry registry, Identifier elementToFilter){ + NpcData foundData = registry.get(elementToFilter); + if(foundData == null) return false; + + if(selectedRace == null) + return true; + + return foundData.getRace().toString().equals(selectedRace.getId().toString()); } public void updateSpawnPoint(int indexDifference){ @@ -409,33 +454,29 @@ public void moveToCurrentSpawn(){ } } - public void randomizeFaction(){ - randomize(false, false); - updateScreenInformation(); + public void randomizeNpc(){ + updateNpcPreview(true); } + public void randomizeAll(){ - randomize( true, true); + randomize(); updateScreenInformation(); } - private void randomize(boolean spawn, boolean race){ + private void randomize(){ Random random = new Random(); setDisposition(factions.keySet().stream().toList().get(random.nextInt(factions.keySet().size()))); - setFaction(random.nextInt(factions.get(selectedDisposition).size())); + setFaction(random.nextInt(factions.get(selectedDispositionType).size())); if(selectedFaction.getSubFactions() != null && !selectedFaction.getSubFactions().isEmpty()) setSubfaction(random.nextInt(selectedFaction.getSubFactions().size())); else selectedSubfaction = null; - if(spawn){ - Faction factionToUse = getCurrentFaction(); - setSpawnPoint(random.nextInt(factionToUse.getSpawnAmount())); - } - if(race){ - Faction factionToUse = getCurrentFaction(); - List races = factionToUse.getRaces(world); - setRace((races == null || races.isEmpty()) ? 0 : random.nextInt(races.size())); - } + Faction factionToUse = getCurrentFaction(); + setSpawnPoint(random.nextInt(factionToUse.getSpawnAmount())); + + List races = factionToUse.getRaces(world); + setRace((races == null || races.isEmpty()) ? 0 : random.nextInt(races.size())); } public void confirmSelection(){ @@ -450,7 +491,7 @@ public void confirmSelection(){ } ClientPlayNetworking.send(new PacketSetRace(selectedRace.getId().toString())); - ClientPlayNetworking.send(new PacketSetAffiliation(selectedDisposition.name(), faction.getId().toString(), selectedSpawn.getIdentifier().toString())); + ClientPlayNetworking.send(new PacketSetAffiliation(selectedDispositionType.name(), faction.getId().toString(), selectedSpawn.getIdentifier().toString())); ClientPlayerEntity player = MinecraftClient.getInstance().player; if(player != null){ BlockPos overworldBlockPos = player.getBlockPos(); @@ -526,7 +567,7 @@ public void selectFactionByIdentifier(Identifier factionId, Identifier subfactio try{ Faction faction = FactionLookup.getFactionById(world, factionId); setDisposition(faction.getDisposition()); - setFaction(factions.get(selectedDisposition).indexOf(faction)); + setFaction(factions.get(selectedDispositionType).indexOf(faction)); if(subfactionId != null){ setSubfaction(selectedFaction.getSubFactions().indexOf(subfactionId)); } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/gui/onboarding/onboarding_faction/OnboardingFactionScreenService.java b/middle-earth/src/main/java/net/sevenstars/middleearth/gui/onboarding/onboarding_faction/OnboardingFactionScreenService.java index 3863bafe79..f41c2961ea 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/gui/onboarding/onboarding_faction/OnboardingFactionScreenService.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/gui/onboarding/onboarding_faction/OnboardingFactionScreenService.java @@ -2,8 +2,8 @@ import net.minecraft.registry.DynamicRegistryManager; import net.minecraft.world.World; -import net.sevenstars.middleearth.resources.FactionsME; -import net.sevenstars.middleearth.resources.datas.Disposition; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; import net.sevenstars.middleearth.resources.datas.factions.Faction; import java.util.ArrayList; @@ -14,13 +14,13 @@ public class OnboardingFactionScreenService { private List factions = new ArrayList<>(); public OnboardingFactionScreenService(World world){ DynamicRegistryManager registryManager = world.getRegistryManager(); - this.factions = registryManager.getOrThrow(FactionsME.KEY).stream().toList(); + this.factions = registryManager.getOrThrow(DynamicRegistriesME.FACTION).stream().toList(); } - public List getFactionsByDisposition(Disposition disposition){ + public List getFactionsByDisposition(DispositionType dispositionType){ List foundFactions = new ArrayList<>(); for(Faction faction : factions){ - if(faction.getDisposition() == disposition) + if(faction.getDisposition() == dispositionType && faction.isJoinable()) foundFactions.add(faction); } foundFactions.sort(Comparator.comparingInt(Faction::getFactionSelectionOrderIndex)); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/gui/structuremanager/StructureManagerScreen.java b/middle-earth/src/main/java/net/sevenstars/middleearth/gui/structuremanager/StructureManagerScreen.java index bb5ef7bf8d..4687b96c28 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/gui/structuremanager/StructureManagerScreen.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/gui/structuremanager/StructureManagerScreen.java @@ -15,7 +15,7 @@ import net.sevenstars.middleearth.gui.utils.widgets.SearchBarWidget; import net.sevenstars.middleearth.gui.utils.widgets.searchbar.SearchBarResult; import net.sevenstars.middleearth.gui.utils.widgets.searchbar.SearchBarResultType; -import net.sevenstars.middleearth.resources.StructureManagerDatasME; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; import net.sevenstars.middleearth.resources.datas.structure_manager_datas.StructureManagerData; import java.awt.*; @@ -43,7 +43,7 @@ public StructureManagerScreen(StructureManagerScreenHandler handler, PlayerInven World world = playerInventory.player.getWorld(); this.identifiers = new ArrayList<>(); - for(RegistryKey data : world.getRegistryManager().getOptional(StructureManagerDatasME.KEY).get().getKeys()){ + for(RegistryKey data : world.getRegistryManager().getOptional(DynamicRegistriesME.STRUCTURE_MANAGER_DATA).get().getKeys()){ this.identifiers.add(data.getValue()); } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/gui/structuremanager/structurenest/StructureNestScreen.java b/middle-earth/src/main/java/net/sevenstars/middleearth/gui/structuremanager/structurenest/StructureNestScreen.java index 0939290556..122959a911 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/gui/structuremanager/structurenest/StructureNestScreen.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/gui/structuremanager/structurenest/StructureNestScreen.java @@ -17,7 +17,7 @@ import net.sevenstars.middleearth.gui.utils.widgets.SearchBarWidget; import net.sevenstars.middleearth.gui.utils.widgets.searchbar.SearchBarResult; import net.sevenstars.middleearth.gui.utils.widgets.searchbar.SearchBarResultType; -import net.sevenstars.middleearth.resources.StructureManagerDatasME; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; import net.sevenstars.middleearth.resources.datas.structure_manager_datas.SpawnNestNodeData; import net.sevenstars.middleearth.resources.datas.structure_manager_datas.StructureManagerData; @@ -45,7 +45,7 @@ public StructureNestScreen(StructureNestScreenHandler handler, PlayerInventory i World world = inventory.player.getWorld(); this.managers = new ArrayList<>(); - var registryManager = world.getRegistryManager().getOptional(StructureManagerDatasME.KEY).get(); + var registryManager = world.getRegistryManager().getOptional(DynamicRegistriesME.STRUCTURE_MANAGER_DATA).get(); for(RegistryKey data : registryManager.getKeys()){ this.managers.add(registryManager.get(data.getValue())); } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/gui/utils/widgets/PlayableNpcPreviewWidget.java b/middle-earth/src/main/java/net/sevenstars/middleearth/gui/utils/widgets/PlayableNpcPreviewWidget.java index baf8ea6311..f068b866af 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/gui/utils/widgets/PlayableNpcPreviewWidget.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/gui/utils/widgets/PlayableNpcPreviewWidget.java @@ -7,13 +7,14 @@ import net.minecraft.client.render.entity.EntityRenderDispatcher; import net.minecraft.client.render.entity.EntityRenderer; import net.minecraft.client.render.entity.state.EntityRenderState; +import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.LivingEntity; import net.minecraft.text.Text; import net.minecraft.util.Identifier; -import net.minecraft.world.World; import net.sevenstars.middleearth.MiddleEarth; import net.sevenstars.middleearth.entity.npcs.NpcEntity; import net.sevenstars.middleearth.entity.npcs.NpcEntityBuilder; +import net.sevenstars.middleearth.entity.npcs.NpcEntityInitializer; import net.sevenstars.middleearth.resources.datas.races.Race; import org.joml.Quaternionf; import org.joml.Vector3f; @@ -45,6 +46,7 @@ public class PlayableNpcPreviewWidget extends ModWidget{ public boolean haveDoneStep = false; public boolean haveBeenInitialized; + public PlayableNpcPreviewWidget(){ ButtonWidget.PressAction leftButtonAction = button -> { reduceAngle(); @@ -113,7 +115,7 @@ private void setCurrentButton(boolean isLeft){ } } - public void updateEntity(Identifier npcDataIdentifier, Race race, World world) { + public void updateEntity(Identifier npcDataIdentifier, Race race, ClientWorld world, boolean deactivatedAI) { if(world != null) haveBeenInitialized = true; @@ -121,12 +123,14 @@ public void updateEntity(Identifier npcDataIdentifier, Race race, World world) { .withNpcData(npcDataIdentifier) .forceBuild(); - npcEntity.setAiDisabled(true); + npcEntity.setAiDisabled(deactivatedAI); npcEntity.setBodyYaw(currentAngle); npcEntity.setPitch(0f); - npcEntity.headYaw = npcEntity.getBodyYaw(); npcEntity.lastHeadYaw =npcEntity.getBodyYaw(); + npcEntity.headYaw = npcEntity.getBodyYaw(); + + NpcEntityInitializer.initializeNpcEntity(world, npcEntity); this.entity = npcEntity; } @@ -149,6 +153,7 @@ public void drawCenteredAnchoredBottom(DrawContext context, int centerX, int end } EntityRenderDispatcher entityRenderDispatcher = MinecraftClient.getInstance().getEntityRenderDispatcher(); + entityRenderDispatcher.setRenderShadows(true); EntityRenderer entityRenderer = entityRenderDispatcher.getRenderer(entity); EntityRenderState entityRenderState = entityRenderer.getAndUpdateRenderState(entity, 1.0F); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/gui/utils/widgets/map/FactionSelectionMapWidget.java b/middle-earth/src/main/java/net/sevenstars/middleearth/gui/utils/widgets/map/FactionSelectionMapWidget.java index c5136ac8a5..2fdf4f4182 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/gui/utils/widgets/map/FactionSelectionMapWidget.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/gui/utils/widgets/map/FactionSelectionMapWidget.java @@ -62,7 +62,7 @@ protected double getMarkerGroupUpRadius(){ @Override protected void draw(DrawContext context, int startX, int startY) { super.draw(context, startX, startY); - if(spawns.isEmpty()) return; + if(spawns == null || spawns.isEmpty()) return; HashMap> uniqueIndexes = new HashMap<>(); for(int i = 0; i < spawns.size() && i < this.spawnMapMarkers.length; i++){ diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/item/DataComponentTypesME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/item/DataComponentTypesME.java index 28b2442f78..03b86b6857 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/item/DataComponentTypesME.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/item/DataComponentTypesME.java @@ -6,7 +6,7 @@ import net.minecraft.registry.Registries; import net.minecraft.registry.Registry; import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.registries.RegistryAliases; +import net.sevenstars.middleearth.registries.RegistryAliasesME; import java.util.function.UnaryOperator; @@ -65,7 +65,7 @@ public class DataComponentTypesME { }); private static ComponentType register(String id, UnaryOperator> builderOperator) { - RegistryAliases.aliases.add(new RegistryAliases.Alias(Registries.DATA_COMPONENT_TYPE, id)); + RegistryAliasesME.aliases.add(new RegistryAliasesME.Alias(Registries.DATA_COMPONENT_TYPE, id)); return Registry.register(Registries.DATA_COMPONENT_TYPE, Identifier.of(MiddleEarth.MOD_ID, id), ((ComponentType.Builder)builderOperator.apply(ComponentType.builder())).build()); } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/item/DecorativeItemsME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/item/DecorativeItemsME.java index e89bca8777..bbd70d1402 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/item/DecorativeItemsME.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/item/DecorativeItemsME.java @@ -7,7 +7,7 @@ import net.sevenstars.middleearth.block.special.LargeDoorBlock; import net.sevenstars.middleearth.block.utils.BlockAuthor; import net.sevenstars.middleearth.datageneration.content.TranslationEntries; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.sevenstars.middleearth.item.dataComponents.BlockAuthorDataComponent; import net.sevenstars.middleearth.item.items.CustomSpawnEggItem; import net.sevenstars.middleearth.item.items.DoorBlockItem; @@ -22,7 +22,7 @@ import net.minecraft.util.Identifier; import net.minecraft.util.Rarity; import net.minecraft.util.math.Direction; -import net.sevenstars.middleearth.registries.RegistryAliases; +import net.sevenstars.middleearth.registries.RegistryAliasesME; import java.util.function.Function; @@ -167,7 +167,7 @@ public class DecorativeItemsME { (settings) -> new BlockItem(ModDecorativeBlocks.TORCH_OF_ORTHANC, settings), new Item.Settings()); public static final Item TROLL_STATUE = registerItem("troll_statue", - (settings) -> new CustomSpawnEggItem(ModEntities.PETRIFIED_TROLL, settings), new Item.Settings().maxCount(1)); + (settings) -> new CustomSpawnEggItem(EntitiesME.PETRIFIED_TROLL, settings), new Item.Settings().maxCount(1)); public static final Item ARKENSTONE = registerItem("arkenstone", (settings) -> new VerticallyAttachableBlockItem(ModDecorativeBlocks.ARKENSTONE, ModDecorativeBlocks.WALL_ARKENSTONE, Direction.DOWN, settings), new Item.Settings().rarity(Rarity.EPIC).fireproof() @@ -178,7 +178,7 @@ private static Item registerItem(String name, Function fact Item item = (Item)factory.apply(settings.registryKey(ModBlocks.keyOfItem(name))); ItemGroupsME.DECORATIVES_BLOCKS_CONTENT.add(item.getDefaultStack()); TranslationEntries.itemEntries.add(item); - RegistryAliases.aliases.add(new RegistryAliases.Alias(Registries.ITEM, name)); + RegistryAliasesME.aliases.add(new RegistryAliasesME.Alias(Registries.ITEM, name)); return Registry.register(Registries.ITEM, Identifier.of(MiddleEarth.MOD_ID, name), item); } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/item/EggItemsME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/item/EggItemsME.java index 4d53197f20..44c4bfe5a8 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/item/EggItemsME.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/item/EggItemsME.java @@ -9,9 +9,9 @@ import net.sevenstars.middleearth.block.registration.ModBlocks; import net.sevenstars.middleearth.datageneration.content.TranslationEntries; import net.sevenstars.middleearth.datageneration.content.models.SimpleItemModel; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.sevenstars.middleearth.item.utils.ItemGroupsME; -import net.sevenstars.middleearth.registries.RegistryAliases; +import net.sevenstars.middleearth.registries.RegistryAliasesME; import java.util.function.Function; @@ -23,49 +23,49 @@ public class EggItemsME { */ public static final Item BARROW_WIGHT_SPAWN_EGG = registerItem("barrow_wight_spawn_egg", - (settings) -> new SpawnEggItem(ModEntities.BARROW_WIGHT, settings), new Item.Settings()); + (settings) -> new SpawnEggItem(EntitiesME.BARROW_WIGHT, settings), new Item.Settings()); public static final Item BROADHOOF_GOAT_SPAWN_EGG = registerItem("broadhoof_goat_spawn_egg", - (settings) -> new SpawnEggItem(ModEntities.BROADHOOF_GOAT, settings), new Item.Settings()); + (settings) -> new SpawnEggItem(EntitiesME.BROADHOOF_GOAT, settings), new Item.Settings()); public static final Item GREAT_HORN_SPAWN_EGG = registerItem("great_horn_spawn_egg", - (settings) -> new SpawnEggItem(ModEntities.GREAT_HORN, settings), new Item.Settings()); + (settings) -> new SpawnEggItem(EntitiesME.GREAT_HORN, settings), new Item.Settings()); public static final Item WARG_SPAWN_EGG = registerItem("warg_spawn_egg", - (settings) -> new SpawnEggItem(ModEntities.WARG, settings), new Item.Settings()); + (settings) -> new SpawnEggItem(EntitiesME.WARG, settings), new Item.Settings()); public static final Item STONE_TROLL_SPAWN_EGG = registerItem("stone_troll_spawn_egg", - (settings) -> new SpawnEggItem(ModEntities.STONE_TROLL, settings), new Item.Settings()); + (settings) -> new SpawnEggItem(EntitiesME.STONE_TROLL, settings), new Item.Settings()); public static final Item SNOW_TROLL_SPAWN_EGG = registerItem("snow_troll_spawn_egg", - (settings) -> new SpawnEggItem(ModEntities.SNOW_TROLL, settings), new Item.Settings()); + (settings) -> new SpawnEggItem(EntitiesME.SNOW_TROLL, settings), new Item.Settings()); public static final Item CAVE_TROLL_SPAWN_EGG = registerItem("cave_troll_spawn_egg", - (settings) -> new SpawnEggItem(ModEntities.CAVE_TROLL, settings), new Item.Settings()); + (settings) -> new SpawnEggItem(EntitiesME.CAVE_TROLL, settings), new Item.Settings()); public static final Item SHELOBITE_LARVA_SPAWN_EGG = registerItem("shelobite_larva_spawn_egg", - (settings) -> new SpawnEggItem(ModEntities.SHELOBITE_LARVA, settings), new Item.Settings()); + (settings) -> new SpawnEggItem(EntitiesME.SHELOBITE_LARVA, settings), new Item.Settings()); public static final Item SHELOBITE_SCUTTLER_SPAWN_EGG = registerItem("shelobite_scuttler_spawn_egg", - (settings) -> new SpawnEggItem(ModEntities.SHELOBITE_SCUTTLER, settings), new Item.Settings()); + (settings) -> new SpawnEggItem(EntitiesME.SHELOBITE_SCUTTLER, settings), new Item.Settings()); public static final Item SHELOBITE_SPAWN_SPAWN_EGG = registerItem("spawn_of_shelob_spawn_egg", - (settings) -> new SpawnEggItem(ModEntities.SPAWN_OF_SHELOB, settings), new Item.Settings()); + (settings) -> new SpawnEggItem(EntitiesME.SPAWN_OF_SHELOB, settings), new Item.Settings()); // Npcs public static final Item NPC_SPAWN_EGG = registerSpecialEgg("npc_spawn_egg", - (settings) -> new SpawnEggItem(ModEntities.NPC, settings), new Item.Settings()); + (settings) -> new SpawnEggItem(EntitiesME.NPC, settings), new Item.Settings()); private static Item registerItem(String name, Function factory, Item.Settings settings) { Item item = (Item)factory.apply(settings.registryKey(ModBlocks.keyOfItem(name))); ItemGroupsME.SPAWN_EGGS_CONTENTS.add(item.getDefaultStack()); SimpleItemModel.items.add(item); TranslationEntries.itemEntries.add(item); - RegistryAliases.aliases.add(new RegistryAliases.Alias(Registries.ITEM, name)); + RegistryAliasesME.aliases.add(new RegistryAliasesME.Alias(Registries.ITEM, name)); return Registry.register(Registries.ITEM, Identifier.of(MiddleEarth.MOD_ID, name), item); } private static Item registerSpecialEgg(String name, Function factory, Item.Settings settings) { Item item = (Item)factory.apply(settings.registryKey(ModBlocks.keyOfItem(name))); ItemGroupsME.SPAWN_EGGS_CONTENTS.add(item.getDefaultStack()); TranslationEntries.itemEntries.add(item); - RegistryAliases.aliases.add(new RegistryAliases.Alias(Registries.ITEM, name)); + RegistryAliasesME.aliases.add(new RegistryAliasesME.Alias(Registries.ITEM, name)); return Registry.register(Registries.ITEM, Identifier.of(MiddleEarth.MOD_ID, name), item); } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/item/EquipmentItemsME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/item/EquipmentItemsME.java index c4ff123e89..438ade3eae 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/item/EquipmentItemsME.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/item/EquipmentItemsME.java @@ -23,8 +23,9 @@ import net.sevenstars.middleearth.item.utils.armor.ArmorMaterialsME; import net.sevenstars.middleearth.item.utils.armor.backAttachments.BackAttachmentsME; import net.sevenstars.middleearth.item.utils.armor.helmetAttachments.HelmetAttachmentsME; -import net.sevenstars.middleearth.registries.RegistryAliases; -import net.sevenstars.middleearth.resources.FactionsME; +import net.sevenstars.middleearth.registries.RegistryAliasesME; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; + import java.util.ArrayList; import java.util.List; @@ -105,23 +106,23 @@ public class EquipmentItemsME { public static final Item LEAF_CAPE = registerBackAttachment("leaf_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.LEAF_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item LEAF_LITTER_CAPE = registerBackAttachment("leaf_litter_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.LEAF_LITTER_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item MIRK_LEAF_CAPE = registerBackAttachment("mirk_leaf_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.MIRK_LEAF_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item MIRK_BARK_CAPE = registerBackAttachment("mirk_bark_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.MIRK_BARK_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item AUTUMN_LEAF_CAPE = registerBackAttachment("autumn_leaf_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.AUTUMN_LEAF_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item BLACK_FUR_CLOAK = registerDyeableBackAttachment("black_fur_cloak", @@ -261,128 +262,128 @@ public class EquipmentItemsME { //region GONDOR public static final Item GONDORIAN_BOOTS = registerArmorPiece("gondorian_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_CABASSET_HELMET = registerCustomModelArmorPiece("gondorian_cabasset_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_MAIL_HAUBERK = registerArmorPiece("gondorian_mail_hauberk", (settings) -> new CustomChestplateItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_TABBARD = registerArmorPiece("gondorian_tabbard", (settings) -> new CustomChestplateItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_LEATHER_CUIRASS = registerDyeableArmorPiece("gondorian_leather_cuirass", (settings) -> new CustomChestplateItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(-6265536)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_LEATHER_CHESTPLATE = registerDyeableArmorPiece("gondorian_leather_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(-6265536)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_MAIL_COAT = registerArmorPiece("gondorian_mail_coat", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_SOLDIER_HELMET = registerCustomModelArmorPiece("gondorian_soldier_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_SOLDIER_CHESTPLATE = registerArmorPiece("gondorian_soldier_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_PLATE_HELMET = registerCustomModelArmorPiece("gondorian_plate_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_PLATE_CHESTPLATE = registerCustomModelArmorPiece("gondorian_plate_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_PLATE_LEGGINGS = registerArmorPiece("gondorian_plate_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_PLATE_BOOTS = registerArmorPiece("gondorian_plate_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_CAPTAIN_HELMET = registerCustomModelArmorPiece("gondorian_captain_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_KINGS_GUARD_HELMET = registerCustomModelArmorPiece("gondorian_kings_guard_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_KINGS_GUARD_CHESTKPLATE = registerCustomModelArmorPiece("gondorian_kings_guard_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.GONDORIAN_KINGS_GUARD_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_KINGS_GUARD_LEGGINGS = registerArmorPiece("gondorian_kings_guard_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_KINGS_GUARD_BOOTS = registerArmorPiece("gondorian_kings_guard_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_CITADEL_GUARD_HELMET = registerCustomModelArmorPiece("gondorian_citadel_guard_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() .component(DataComponentTypesME.HELMET_ATTACHMENT_DATA, HelmetAttachmentDataComponent.newHelmetAttachmentwithState(true, HelmetAttachmentsME.GONDORIAN_CITADEL_GUARD_HOOD)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_CITADEL_GUARD_CHESTPLATE = registerArmorPiece("gondorian_citadel_guard_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.GONDORIAN_CITADEL_GUARD_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_CITADEL_GUARD_LEGGINGS = registerArmorPiece("gondorian_citadel_guard_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_CITADEL_GUARD_BOOTS = registerArmorPiece("gondorian_citadel_guard_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_FOUNTAIN_GUARD_HELMET = registerCustomModelArmorPiece("gondorian_fountain_guard_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_FOUNTAIN_GUARD_CHESTPLATE = registerCustomModelArmorPiece("gondorian_fountain_guard_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.GONDORIAN_FOUNTAIN_GUARD_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_FOUNTAIN_GUARD_LEGGINGS = registerArmorPiece("gondorian_fountain_guard_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_FOUNTAIN_GUARD_BOOTS = registerArmorPiece("gondorian_fountain_guard_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_CITADEL_GUARD_HOOD = registerHelmetAttachment("gondorian_citadel_guard_hood", (settings) -> new HelmetAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.HELMET_ATTACHMENT_DATA, HelmetAttachmentDataComponent.newHelmetAttachmentwithState(true, HelmetAttachmentsME.GONDORIAN_CITADEL_GUARD_HOOD)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_CAPTAIN_CAPE = registerBackAttachment("gondorian_captain_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.GONDORIAN_CAPTAIN_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_HERO_CAPE = registerBackAttachment("gondorian_hero_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.GONDORIAN_HERO_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_KINGS_GUARD_CAPE = registerBackAttachment("gondorian_kings_guard_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.GONDORIAN_KINGS_GUARD_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_CITADEL_GUARD_CAPE = registerBackAttachment("gondorian_citadel_guard_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.GONDORIAN_CITADEL_GUARD_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_FOUNTAIN_GUARD_CAPE = registerBackAttachment("gondorian_fountain_guard_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.GONDORIAN_FOUNTAIN_GUARD_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_HORSE_ARMOR = registerGeneratedItem("gondorian_horse_armor", Item::new, new Item.Settings().horseArmor(ArmorMaterialsME.GONDORIAN_HORSE_ARMOR.material()).maxCount(1) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); //endregion //region ROHAN @@ -390,210 +391,210 @@ public class EquipmentItemsME { (settings) -> new CustomChestplateItem(ArmorMaterialsME.FABRIC_T1, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent( 15256475)) .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.ROHIRRIC_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_LEATHER_HELMET = registerArmorPiece("rohirric_leather_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_REINFORCED_LEATHER_HELMET = registerCustomModelArmorPiece("rohirric_reinforced_leather_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_ORNAMENTED_LEATHER_HELMET = registerArmorPiece("rohirric_ornamented_leather_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_LEATHER_VEST = registerDyeableArmorPiece("rohirric_leather_vest", (settings) -> new CustomChestplateItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(15256475)) .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.ROHIRRIC_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue())).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue())).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_LEATHER_SCALE_VEST = registerDyeableArmorPiece("rohirric_leather_scale_vest", (settings) -> new CustomChestplateItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(15256475)) - .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.ROHIRRIC_CAPE)).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.ROHIRRIC_CAPE)).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_GAMBESON = registerDyeableArmorPiece("rohirric_gambeson", (settings) -> new CustomChestplateItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(15256475)) - .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.ROHIRRIC_CAPE)).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.ROHIRRIC_CAPE)).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_MILITIA_HELMET = registerArmorPiece("rohirric_militia_helmet", - (settings) -> new CustomHelmetItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + (settings) -> new CustomHelmetItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_BRACED_MILITIA_HELMET = registerCustomModelArmorPiece("rohirric_braced_militia_helmet", - (settings) -> new CustomHelmetItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + (settings) -> new CustomHelmetItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_REINFORCED_MILITIA_HELMET = registerArmorPiece("rohirric_reinforced_militia_helmet", - (settings) -> new CustomHelmetItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + (settings) -> new CustomHelmetItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_ORNAMENTED_MILITIA_HELMET = registerCustomModelArmorPiece("rohirric_ornamented_militia_helmet", - (settings) -> new CustomHelmetItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + (settings) -> new CustomHelmetItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_REINFORCED_LEATHER_VEST = registerDyeableArmorPiece("rohirric_reinforced_leather_vest", (settings) -> new CustomChestplateItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(15256475)) - .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.ROHIRRIC_CAPE)).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.ROHIRRIC_CAPE)).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_BRACED_MAIL_SHIRT = registerDyeableArmorPiece("rohirric_braced_mail_shirt", (settings) -> new CustomChestplateItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(15256475)) - .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.ROHIRRIC_CAPE)).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.ROHIRRIC_CAPE)).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_REINFORCED_LEATHER_SCALE_VEST = registerArmorPiece("rohirric_reinforced_leather_scale_vest", (settings) -> new CustomChestplateItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() - .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.ROHIRRIC_CAPE)).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.ROHIRRIC_CAPE)).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_SOLDIER_HELMET = registerArmorPiece("rohirric_soldier_helmet", - (settings) -> new CustomHelmetItem(ArmorMaterialsME.STEEL_T4, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + (settings) -> new CustomHelmetItem(ArmorMaterialsME.STEEL_T4, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_ORNAMENTED_SOLDIER_HELMET = registerCustomModelArmorPiece("rohirric_ornamented_soldier_helmet", - (settings) -> new CustomHelmetItem(ArmorMaterialsME.STEEL_T4, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + (settings) -> new CustomHelmetItem(ArmorMaterialsME.STEEL_T4, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_ROYAL_GUARD_HELMET = registerCustomModelArmorPiece("rohirric_royal_guard_helmet", - (settings) -> new CustomHelmetItem(ArmorMaterialsME.STEEL_T4, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + (settings) -> new CustomHelmetItem(ArmorMaterialsME.STEEL_T4, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_SCALE_HAUBERK = registerArmorPiece("rohirric_scale_hauberk", - (settings) -> new CustomChestplateItem(ArmorMaterialsME.STEEL_T4, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + (settings) -> new CustomChestplateItem(ArmorMaterialsME.STEEL_T4, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_ORNAMENTED_SCALE_HAUBERK = registerArmorPiece("rohirric_ornamented_scale_hauberk", (settings) -> new CustomChestplateItem(ArmorMaterialsME.STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.ROHIRRIC_ROYAL_GUARD_CAPE)).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.ROHIRRIC_ROYAL_GUARD_CAPE)).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_SCALE_JACKET = registerArmorPiece("rohirric_scale_jacket", - (settings) -> new CustomLeggingsItem(ArmorMaterialsME.STEEL_T4, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + (settings) -> new CustomLeggingsItem(ArmorMaterialsME.STEEL_T4, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item EORLING_MARSHAL_HELMET = registerCustomModelArmorPiece("eorling_marshal_helmet", - (settings) -> new CustomHelmetItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + (settings) -> new CustomHelmetItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item EORLING_MARSHAL_CHESTPLATE = registerArmorPiece("eorling_marshal_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.EORLING_MARSHAL_CAPE)).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.EORLING_MARSHAL_CAPE)).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item EORLING_MARSHAL_LEGGINGS = registerArmorPiece("eorling_marshal_leggings", - (settings) -> new CustomLeggingsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + (settings) -> new CustomLeggingsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item EORLING_MARSHAL_BOOTS = registerArmorPiece("eorling_marshal_boots", - (settings) -> new CustomBootsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + (settings) -> new CustomBootsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item HORSE_LORD_HELMET = registerCustomModelArmorPiece("horse_lord_helmet", - (settings) -> new CustomHelmetItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + (settings) -> new CustomHelmetItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item HORSE_LORD_CHESTPLATE = registerArmorPiece("horse_lord_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.HORSE_LORD_CAPE)).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.HORSE_LORD_CAPE)).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item HORSE_LORD_LEGGINGS = registerArmorPiece("horse_lord_leggings", - (settings) -> new CustomLeggingsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + (settings) -> new CustomLeggingsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item HORSE_LORD_BOOTS = registerArmorPiece("horse_lord_boots", - (settings) -> new CustomBootsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + (settings) -> new CustomBootsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings().component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_CAPE = registerBackAttachment("rohirric_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() - .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.ROHIRRIC_CAPE)).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.ROHIRRIC_CAPE)).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_ROYAL_GUARD_CAPE = registerBackAttachment("rohirric_royal_guard_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() - .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.ROHIRRIC_ROYAL_GUARD_CAPE)).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.ROHIRRIC_ROYAL_GUARD_CAPE)).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item EORLING_MARSHAL_CAPE = registerBackAttachment("eorling_marshal_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() - .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.EORLING_MARSHAL_CAPE)).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.EORLING_MARSHAL_CAPE)).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item HORSE_LORD_CAPE = registerBackAttachment("horse_lord_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() - .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.HORSE_LORD_CAPE)).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.HORSE_LORD_CAPE)).component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_HORSE_ARMOR = registerGeneratedItem("rohirric_horse_armor", Item::new, new Item.Settings().horseArmor(ArmorMaterialsME.ROHIRRIC_HORSE_ARMOR.material()).maxCount(1) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); //endregion //region DALE public static final Item DALISH_ARMING_COAT_BLACK_FUR = registerDyeableArmorPiece("dalish_arming_coat_black_fur", (settings) -> new CustomChestplateItem(ArmorMaterialsME.FABRIC_T1, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(7296407)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_ARMING_COAT_BROWN_FUR = registerDyeableArmorPiece("dalish_arming_coat_brown_fur", (settings) -> new CustomChestplateItem(ArmorMaterialsME.FABRIC_T1, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(7296407)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_ARMING_COAT_TAN_FUR = registerDyeableArmorPiece("dalish_arming_coat_tan_fur", (settings) -> new CustomChestplateItem(ArmorMaterialsME.FABRIC_T1, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(7296407)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_HEYDAY_ARMING_COAT = registerArmorPiece("dalish_heyday_arming_coat", (settings) -> new CustomChestplateItem(ArmorMaterialsME.FABRIC_T1, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_BOOTS = registerArmorPiece("dalish_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_HELMET = registerCustomModelArmorPiece("dalish_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_HELMET_BLACK_FUR = registerCustomModelArmorPiece("dalish_helmet_black_fur", (settings) -> new CustomHelmetItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_HELMET_BROWN_FUR = registerCustomModelArmorPiece("dalish_helmet_brown_fur", (settings) -> new CustomHelmetItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_HELMET_TAN_FUR = registerCustomModelArmorPiece("dalish_helmet_tan_fur", (settings) -> new CustomHelmetItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_MAIL_HAUBERK = registerArmorPiece("dalish_mail_hauberk", (settings) -> new CustomChestplateItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_MAIL_COAT = registerArmorPiece("dalish_mail_coat", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_BURGONET = registerCustomModelArmorPiece("dalish_burgonet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_SCALE_HAUBERK = registerArmorPiece("dalish_scale_hauberk", (settings) -> new CustomChestplateItem(ArmorMaterialsME.STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_HEYDAY_HELMET = registerCustomModelArmorPiece("dalish_heyday_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_HEYDAY_CHESTPLATE = registerArmorPiece("dalish_heyday_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.STEEL_T4, settings), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.DALISH_HEYDAY_CLOAK)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_HEYDAY_MAIL_COAT = registerArmorPiece("dalish_heyday_mail_coat", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_HEYDAY_BOOTS = registerArmorPiece("dalish_heyday_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item BARDING_SOLDIER_HELMET = registerCustomModelArmorPiece("barding_soldier_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item BARDING_SOLDIER_CHESTPLATE = registerArmorPiece("barding_soldier_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item BARDING_MAIL_SKIRT = registerArmorPiece("barding_mail_skirt", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item BARDING_PLATED_BOOTS = registerArmorPiece("barding_plated_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item BARDING_SERGEANT_HELMET = registerCustomModelArmorPiece("barding_sergeant_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item BARDING_SERGEANT_CHESTPLATE = registerArmorPiece("barding_sergeant_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.BARDING_SERGEANT_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item BARDING_SURCOAT = registerBackAttachment("barding_surcoat", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.BARDING_SURCOAT)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_HEYDAY_CLOAK = registerBackAttachment("dalish_heyday_cloak", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.DALISH_HEYDAY_CLOAK)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item BARDING_SERGEANT_CAPE = registerBackAttachment("barding_sergeant_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.BARDING_SERGEANT_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_HORSE_ARMOR = registerGeneratedItem("dalish_horse_armor", Item::new, new Item.Settings().horseArmor(ArmorMaterialsME.DALISH_HORSE_ARMOR.material()).maxCount(1) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); //endregion //endregion @@ -640,204 +641,204 @@ public class EquipmentItemsME { //region LONGBEARDS public static final Item LONGBEARD_SEGMENTED_HELMET = registerArmorPiece("longbeard_segmented_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BRONZE_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS.getValue()))); public static final Item LONGBEARD_LEATHER_HAUBERK = registerDyeableArmorPiece("longbeard_leather_hauberk", (settings) -> new CustomChestplateItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(5914168)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS.getValue()))); public static final Item LONGBEARD_WANDERER_COAT = registerDyeableArmorPiece("longbeard_wanderer_coat", (settings) -> new CustomChestplateItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(5914168)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS.getValue()))); public static final Item LONGBEARD_LEATHER_LEGGINGS = registerDyeableArmorPiece("longbeard_leather_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(5914168)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS.getValue()))); public static final Item LONGBEARD_PARTISAN_OUTFIT = registerDyeableArmorPiece("longbeard_partisan_outfit", (settings) -> new CustomChestplateItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(5914168)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS.getValue()))); public static final Item LONGBEARD_REINFORCED_LEATHER_HAUBERK = registerDyeableArmorPiece("longbeard_reinforced_leather_hauberk", (settings) -> new CustomChestplateItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(5914168)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS.getValue()))); //region EREBOR public static final Item EREBOR_LEATHER_HELMET = registerDyeableArmorPiece("erebor_leather_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.IRON_T2, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(7098174)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_BRACED_LEATHER_HELMET = registerDyeableArmorPiece("erebor_braced_leather_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.IRON_T2, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(6309430)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_NASAL_LEATHER_HELMET = registerDyeableArmorPiece("erebor_nasal_leather_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.IRON_T2, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(7098174)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_LEATHER_LEGGINGS = registerDyeableArmorPiece("erebor_leather_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(5914168)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_MAIL_COIF = registerArmorPiece("erebor_mail_coif", (settings) -> new CustomHelmetItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_GILDED_MAIL_COIF = registerArmorPiece("erebor_gilded_mail_coif", (settings) -> new CustomHelmetItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_HELMET = registerArmorPiece("erebor_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_MAIL_HAUBERK = registerArmorPiece("erebor_mail_hauberk", (settings) -> new CustomChestplateItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_PADDED_MAIL_HAUBERK = registerDyeableArmorPiece("erebor_padded_mail_hauberk", (settings) -> new CustomChestplateItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(3687263)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_MAIL_COAT = registerArmorPiece("erebor_mail_coat", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_MAIL_LEGGINGS = registerArmorPiece("erebor_mail_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_MAIL_CHAUSSES = registerArmorPiece("erebor_mail_chausses", (settings) -> new CustomBootsItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_BOOTS = registerArmorPiece("erebor_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item RAVENHILL_HELMET = registerArmorPiece("ravenhill_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.DWARVEN_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item RAVENHILL_GILDED_HELMET = registerArmorPiece("ravenhill_gilded_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.DWARVEN_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_SCALE_HAUBERK = registerArmorPiece("erebor_scale_hauberk", (settings) -> new CustomChestplateItem(ArmorMaterialsME.DWARVEN_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_LONG_COAT = registerDyeableArmorPiece("erebor_long_coat", (settings) -> new CustomChestplateItem(ArmorMaterialsME.DWARVEN_STEEL_T4, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(5914168)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_BRAWLER_CHESTPLATE = registerDyeableArmorPiece("erebor_brawler_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.DWARVEN_STEEL_T4, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(3687263)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_REINFORCED_LEATHER_HAUBERK = registerDyeableArmorPiece("erebor_reinforced_leather_hauberk", (settings) -> new CustomChestplateItem(ArmorMaterialsME.DWARVEN_STEEL_T4, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(5914168)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_REINFORCED_COAT = registerDyeableArmorPiece("erebor_reinforced_coat", (settings) -> new CustomChestplateItem(ArmorMaterialsME.DWARVEN_STEEL_T4, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(3687263)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item RAVENHILL_REINFORCED_MAIL_HAUBERK = registerArmorPiece("ravenhill_reinforced_mail_hauberk", (settings) -> new CustomChestplateItem(ArmorMaterialsME.DWARVEN_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_SCALE_COAT = registerArmorPiece("erebor_scale_coat", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.DWARVEN_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_SCALE_LEGGINGS = registerArmorPiece("erebor_scale_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.DWARVEN_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item RAVENHILL_BOOTS = registerArmorPiece("ravenhill_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.DWARVEN_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_GUARD_HELMET = registerArmorPiece("erebor_guard_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.DWARVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_CAPTAIN_HELMET = registerCustomModelArmorPiece("erebor_captain_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.DWARVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_PLATE_HELMET = registerCustomModelArmorPiece("erebor_plate_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.DWARVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_PLATE_CHESTPLATE = registerCustomModelArmorPiece("erebor_plate_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.DWARVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_PLATE_LEGGINGS = registerArmorPiece("erebor_plate_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.DWARVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_PLATE_BOOTS = registerArmorPiece("erebor_plate_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.DWARVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item RAVENHILL_WATCHWARDEN_HELMET = registerArmorPiece("ravenhill_watchwarden_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.DWARVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item RAVENHILL_WATCHWARDEN_CHESTPLATE = registerCustomModelArmorPiece("ravenhill_watchwarden_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.DWARVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item RAVENHILL_WATCHWARDEN_LEGGINGS = registerArmorPiece("ravenhill_watchwarden_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.DWARVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item RAVENHILL_WATCHWARDEN_BOOTS = registerArmorPiece("ravenhill_watchwarden_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.DWARVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item RAVENHILL_SENTINEL_HELMET = registerCustomModelArmorPiece("ravenhill_sentinel_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.DWARVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item RAVENHILL_SENTINEL_CHESTPLATE = registerCustomModelArmorPiece("ravenhill_sentinel_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.DWARVEN_STEEL_T5, settings), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.RAVENHILL_SENTINEL_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item RAVENHILL_SENTINEL_LEGGINGS = registerArmorPiece("ravenhill_sentinel_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.DWARVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item RAVENHILL_SENTINEL_BOOTS = registerArmorPiece("ravenhill_sentinel_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.DWARVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_GATEWARDEN_HELMET = registerCustomModelArmorPiece("erebor_gatewarden_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.DWARVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_GATEWARDEN_CHESTPLATE = registerCustomModelArmorPiece("erebor_gatewarden_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.DWARVEN_STEEL_T5, settings), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.EREBOR_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_GATEWARDEN_LEGGINGS = registerArmorPiece("erebor_gatewarden_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.DWARVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_GATEWARDEN_BOOTS = registerArmorPiece("erebor_gatewarden_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.DWARVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_CAPE = registerBackAttachment("erebor_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.EREBOR_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item RAVENHILL_SENTINEL_CAPE = registerBackAttachment("ravenhill_sentinel_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.RAVENHILL_SENTINEL_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item BROADHOOF_GOAT_PADDED_ARMOR = registerDyeableArmorPiece("broadhoof_goat_leather_armor", Item::new, ItemSettingsME.goatArmor(ArmorMaterialsME.BROADHOOF_GOAT_LEATHER_ARMOR.material()) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item BROADHOOF_GOAT_ORNAMENTED_PADDED_ARMOR = registerDyeableArmorPiece("broadhoof_goat_ornamented_leather_armor", Item::new, ItemSettingsME.goatArmor(ArmorMaterialsME.BROADHOOF_GOAT_ORNAMENTED_LEATHER_ARMOR.material()) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item BROADHOOF_GOAT_PLATE_ARMOR = registerGeneratedItem("broadhoof_goat_plate_armor", Item::new, ItemSettingsME.goatArmor(ArmorMaterialsME.BROADHOOF_GOAT_PLATE_ARMOR.material()) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); //endregion //endregion @@ -911,133 +912,133 @@ public class EquipmentItemsME { //region LOTHLORIEN public static final Item LORIEN_DIADEM = registerCustomModelArmorPiece("lorien_diadem", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BRONZE_T1, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item LORIEN_LEATHER_HELMET = registerCustomModelArmorPiece("lorien_leather_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item LORIEN_ARMING_COAT = registerArmorPiece("lorien_arming_coat", (settings) -> new CustomChestplateItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item LORIEN_ARMING_SKIRT = registerArmorPiece("lorien_arming_skirt", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item LORIEN_MAIL_COIF_DIADEM = registerCustomModelArmorPiece("lorien_mail_coif_diadem", (settings) -> new CustomHelmetItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item LORIEN_SHORT_MAIL_COIF_DIADEM = registerCustomModelArmorPiece("lorien_short_mail_coif_diadem", (settings) -> new CustomHelmetItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item LORIEN_MAIL_HAUBERK = registerArmorPiece("lorien_mail_hauberk", (settings) -> new CustomChestplateItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item LORIEN_MARCHWARDEN_MAIL_HAUBERK = registerArmorPiece("lorien_marchwarden_mail_hauberk", (settings) -> new CustomChestplateItem(ArmorMaterialsME.IRON_T3, settings), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.LORIEN_MARCHWARDEN_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item LORIEN_SOLDIER_HELMET = registerCustomModelArmorPiece("lorien_soldier_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.ELVEN_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item LORIEN_SOLDIER_MAIL_HAUBERK = registerArmorPiece("lorien_soldier_mail_hauberk", (settings) -> new CustomChestplateItem(ArmorMaterialsME.ELVEN_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item LORIEN_SOLDIER_SCALE_HAUBERK = registerArmorPiece("lorien_soldier_scale_hauberk", (settings) -> new CustomChestplateItem(ArmorMaterialsME.ELVEN_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item LORIEN_SCALE_COAT = registerArmorPiece("lorien_scale_coat", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.ELVEN_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item GALADHRIM_HELMET = registerCustomModelArmorPiece("galadhrim_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() .component(DataComponentTypesME.HELMET_ATTACHMENT_DATA, HelmetAttachmentDataComponent.newHelmetAttachment(HelmetAttachmentsME.GALADHRIM_HOOD)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item GALADHRIM_CHESTPLATE = registerArmorPiece("galadhrim_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.GALADHRIM_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item GALADHRIM_LEGGINGS = registerArmorPiece("galadhrim_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item GALADHRIM_BOOTS = registerArmorPiece("galadhrim_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item EGLADIL_SENTINEL_HELMET = registerDyeableCustomModelArmorPiece("egladil_sentinel_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(0x463463)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item EGLADIL_SENTINEL_CHESTPLATE = registerDyeableArmorPiece("egladil_sentinel_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(0x6171AE)) .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.EGLADIL_SENTINEL_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item EGLADIL_SENTINEL_LEGGINGS = registerDyeableArmorPiece("egladil_sentinel_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(0x463463)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item EGLADIL_SENTINEL_BOOTS = registerArmorPiece("egladil_sentinel_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item EGLADIL_COMMANDER_HELMET = registerCustomModelArmorPiece("egladil_commander_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item GALADHRIM_LORD_HELMET = registerCustomModelArmorPiece("galadhrim_lord_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item GALADHRIM_LORD_CHESTPLATE = registerArmorPiece("galadhrim_lord_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.GALADHRIM_LORD_SURCOAT)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item GALADHRIM_LORD_LEGGINGS = registerArmorPiece("galadhrim_lord_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item GALADHRIM_LORD_BOOTS = registerArmorPiece("galadhrim_lord_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item LORIEN_MARCHWARDEN_HOOD = registerHelmetAttachment("lorien_marchwarden_hood", (settings) -> new HelmetAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.HELMET_ATTACHMENT_DATA, HelmetAttachmentDataComponent.newHelmetAttachment(HelmetAttachmentsME.LORIEN_MARCHWARDEN_HOOD)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item GALADHRIM_HOOD = registerHelmetAttachment("galadhrim_hood", (settings) -> new HelmetAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.HELMET_ATTACHMENT_DATA, HelmetAttachmentDataComponent.newHelmetAttachment(HelmetAttachmentsME.GALADHRIM_HOOD)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item LORIEN_MARCHWARDEN_CAPE = registerBackAttachment("lorien_marchwarden_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.LORIEN_MARCHWARDEN_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item GALADHRIM_CAPE = registerBackAttachment("galadhrim_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.GALADHRIM_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item EGLADIL_SENTINEL_CAPE = registerBackAttachment("egladil_sentinel_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.EGLADIL_SENTINEL_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item GALADHRIM_LORD_CLOAK = registerBackAttachment("galadhrim_lord_cloak", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.GALADHRIM_LORD_CLOAK)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item GALADHRIM_LORD_SURCOAT = registerBackAttachment("galadhrim_lord_surcoat", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.GALADHRIM_LORD_SURCOAT)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item LORIEN_HORSE_ARMOR = registerGeneratedItem("lorien_horse_armor", Item::new, new Item.Settings().horseArmor(ArmorMaterialsME.LORIEN_HORSE_ARMOR.material()).maxCount(1) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); //endregion //region WOODLAND_REALM @@ -1056,158 +1057,158 @@ public class EquipmentItemsME { public static final Item WOODLAND_REALM_BRONZE_TRIMMED_RANGER_HELMET = registerCustomModelArmorPiece("woodland_realm_bronze_trimmed_ranger_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_SILVER_TRIMMED_RANGER_HELMET = registerCustomModelArmorPiece("woodland_realm_silver_trimmed_ranger_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_CAVALRY_HELMET = registerDyeableCustomModelArmorPiece("woodland_realm_cavalry_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.ELVEN_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue())) + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue())) .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(0x515638))); public static final Item WOODLAND_REALM_GILDED_SCALE_HAUBERK = registerArmorPiece("woodland_realm_gilded_scale_hauberk", (settings) -> new CustomChestplateItem(ArmorMaterialsME.ELVEN_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_GILDED_SCALE_SKIRT = registerArmorPiece("woodland_realm_gilded_scale_skirt", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.ELVEN_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_ROYAL_GUARD_HELMET = registerDyeableCustomModelArmorPiece("woodland_realm_royal_guard_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.ELVEN_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue())) + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue())) .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(0x532e29))); public static final Item WOODLAND_REALM_SCALE_HAUBERK = registerArmorPiece("woodland_realm_scale_hauberk", (settings) -> new CustomChestplateItem(ArmorMaterialsME.ELVEN_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_SCALE_SKIRT = registerArmorPiece("woodland_realm_scale_skirt", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.ELVEN_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_SOLDIER_HELMET = registerCustomModelArmorPiece("woodland_realm_soldier_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_SOLDIER_CHESTPLATE = registerArmorPiece("woodland_realm_soldier_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.WOODLAND_REALM_SOLDIER_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_SOLDIER_LEGGINGS = registerArmorPiece("woodland_realm_soldier_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_SOLDIER_BOOTS = registerArmorPiece("woodland_realm_soldier_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WARDEN_OF_THE_GLADE_HELMET = registerDyeableCustomModelArmorPiece("warden_of_the_glade_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue())) + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue())) .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(0x5c5445))); public static final Item WARDEN_OF_THE_GLADE_CHESTPLATE = registerArmorPiece("warden_of_the_glade_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.WARDEN_OF_THE_GLADE_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WARDEN_OF_THE_GLADE_LEGGINGS = registerArmorPiece("warden_of_the_glade_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WARDEN_OF_THE_GLADE_BOOTS = registerArmorPiece("warden_of_the_glade_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WARRIOR_OF_THE_NIGHTSHADE_HELMET = registerCustomModelArmorPiece("warrior_of_nightshade_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WARRIOR_OF_THE_NIGHTSHADE_CHESTPLATE = registerArmorPiece("warrior_of_nightshade_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.WARRIOR_OF_NIGHTSHADE_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WARRIOR_OF_THE_NIGHTSHADE_LEGGINGS = registerArmorPiece("warrior_of_nightshade_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WARRIOR_OF_THE_NIGHTSHADE_BOOTS = registerArmorPiece("warrior_of_nightshade_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item ERYN_GALEN_WATCHWARDEN_HELMET = registerCustomModelArmorPiece("eryn_galen_watchwarden_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item ERYN_GALEN_WATCHWARDEN_CHESTPLATE = registerArmorPiece("eryn_galen_watchwarden_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item ERYN_GALEN_WATCHWARDEN_LEGGINGS = registerArmorPiece("eryn_galen_watchwarden_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item ERYN_GALEN_WATCHWARDEN_BOOTS = registerArmorPiece("eryn_galen_watchwarden_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item OXIDISED_ERYN_GALEN_WATCHWARDEN_HELMET = registerCustomModelArmorPiece("oxidised_eryn_galen_watchwarden_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item OXIDISED_ERYN_GALEN_WATCHWARDEN_CHESTPLATE = registerArmorPiece("oxidised_eryn_galen_watchwarden_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item OXIDISED_ERYN_GALEN_WATCHWARDEN_LEGGINGS = registerArmorPiece("oxidised_eryn_galen_watchwarden_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item OXIDISED_ERYN_GALEN_WATCHWARDEN_BOOTS = registerArmorPiece("oxidised_eryn_galen_watchwarden_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_COMMANDER_HELMET = registerCustomModelArmorPiece("woodland_realm_commander_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_COMMANDER_CHESTPLATE = registerArmorPiece("woodland_realm_commander_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.WOODLAND_REALM_SOLDIER_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_COMMANDER_LEGGINGS = registerArmorPiece("woodland_realm_commander_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_COMMANDER_BOOTS = registerArmorPiece("woodland_realm_commander_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item SILVAN_LORD_HELMET = registerCustomModelArmorPiece("silvan_lord_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item SILVAN_LORD_CHESTPLATE = registerArmorPiece("silvan_lord_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.SILVAN_LORD_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item SILVAN_LORD_LEGGINGS = registerArmorPiece("silvan_lord_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item SILVAN_LORD_BOOTS = registerArmorPiece("silvan_lord_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.ELVEN_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_SOLDIER_CAPE = registerBackAttachment("woodland_realm_soldier_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.WOODLAND_REALM_SOLDIER_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_ROYAL_GUARD_CAPE = registerBackAttachment("woodland_realm_royal_guard_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.WOODLAND_REALM_ROYAL_GUARD_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item LORD_OF_THE_GREENWOOD_CAPE = registerBackAttachment("lord_of_the_greenwood_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.LORD_OF_THE_GREENWOOD_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WARDEN_OF_THE_GLADE_CAPE = registerBackAttachment("warden_of_the_glade_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.WARDEN_OF_THE_GLADE_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WARRIOR_OF_NIGHTSHADE_CAPE = registerBackAttachment("warrior_of_nightshade_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.WARRIOR_OF_NIGHTSHADE_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item SILVAN_LORD_CAPE = registerBackAttachment("silvan_lord_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.SILVAN_LORD_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_CROWN = registerCustomModelArmorPiece("woodland_realm_crown", (settings) -> new WoodlandRealmCrownItem(ArmorMaterialsME.STRAW_T1, settings), new Item.Settings().rarity(Rarity.EPIC) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); //endregion //endregion @@ -1346,701 +1347,701 @@ public class EquipmentItemsME { //region MORDOR public static final Item RUSTED_MORDOR_HELMET = registerArmorPiece("rusted_mordor_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item RUSTED_MORDOR_KETTLE_HAT = registerCustomModelArmorPiece("rusted_mordor_kettle_hat", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item RUSTED_MORDOR_KETTLE_HAT_WITH_COIF = registerCustomModelArmorPiece("rusted_mordor_kettle_hat_with_coif", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item RUSTED_MORDOR_NASAL_HELMET = registerArmorPiece("rusted_mordor_nasal_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_LEATHER_CUIRASS = registerDyeableArmorPiece("mordor_leather_cuirass", (settings) -> new CustomChestplateItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(5186845)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_PAINTED_LEATHER_CUIRASS = registerDyeableArmorPiece("mordor_painted_leather_cuirass", (settings) -> new CustomChestplateItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(5186845)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_HELMET = registerArmorPiece("mordor_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_KETTLE_HAT = registerCustomModelArmorPiece("mordor_kettle_hat", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_KETTLE_HAT_WITH_COIF = registerCustomModelArmorPiece("mordor_kettle_hat_with_coif", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_NASAL_HELMET = registerArmorPiece("mordor_nasal_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item RUSTED_MORDOR_CREST_HELMET = registerCustomModelArmorPiece("rusted_mordor_crest_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item RUSTED_MORDOR_MANDIBLE_HELMET = registerArmorPiece("rusted_mordor_mandible_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item RUSTED_MORDOR_SALLET = registerCustomModelArmorPiece("rusted_mordor_sallet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item RUSTED_MORDOR_CHESTPLATE = registerArmorPiece("rusted_mordor_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.BURZUM_STEEL_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item RUSTED_MORDOR_CUIRASS = registerDyeableArmorPiece("rusted_mordor_cuirass", (settings) -> new CustomChestplateItem(ArmorMaterialsME.BURZUM_STEEL_T3, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(5186845)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item RUSTED_MORDOR_GORGET_HAUBERK = registerArmorPiece("rusted_mordor_gorget_hauberk", (settings) -> new CustomChestplateItem(ArmorMaterialsME.BURZUM_STEEL_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item RUSTED_MORDOR_REINFORCED_COAT = registerDyeableArmorPiece("rusted_mordor_reinforced_coat", (settings) -> new CustomChestplateItem(ArmorMaterialsME.BURZUM_STEEL_T3, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(5186845)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item RUSTED_MORDOR_PLATE_BOOTS = registerArmorPiece("rusted_mordor_plate_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.BURZUM_STEEL_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_CREST_HELMET = registerCustomModelArmorPiece("mordor_crest_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_MANDIBLE_HELMET = registerArmorPiece("mordor_mandible_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_SALLET = registerCustomModelArmorPiece("mordor_sallet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item RUSTED_MORDOR_GREAT_HELMET = registerCustomModelArmorPiece("rusted_mordor_great_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item RUSTED_MORDOR_SNOUT_HELMET = registerCustomModelArmorPiece("rusted_mordor_snout_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_CHESTPLATE = registerArmorPiece("mordor_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_CUIRASS = registerDyeableArmorPiece("mordor_cuirass", (settings) -> new CustomChestplateItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(5186845)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_DEGRADED_GONDORIAN_CHESTPLATE = registerDyeableArmorPiece("mordor_degraded_gondorian_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(5186845)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_GORGET_HAUBERK = registerArmorPiece("mordor_gorget_hauberk", (settings) -> new CustomChestplateItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_PAINTED_CUIRASS = registerDyeableArmorPiece("mordor_painted_cuirass", (settings) -> new CustomChestplateItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(5186845)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_REINFORCED_COAT = registerDyeableArmorPiece("mordor_reinforced_coat", (settings) -> new CustomChestplateItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(5186845)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_SCALE_COAT = registerArmorPiece("mordor_scale_coat", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_PLATE_BOOTS = registerArmorPiece("mordor_plate_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_GREAT_HELMET = registerCustomModelArmorPiece("mordor_great_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_SNOUT_HELMET = registerCustomModelArmorPiece("mordor_snout_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item BLACK_URUK_PLATE_HELMET = registerArmorPiece("black_uruk_plate_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item BLACK_URUK_FACE_PLATE_HELMET = registerArmorPiece("black_uruk_face_plate_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item BLACK_URUK_PLATE_CHESTPLATE = registerCustomModelArmorPiece("black_uruk_plate_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item BLACK_URUK_PLATE_LEGGINGS = registerArmorPiece("black_uruk_plate_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item BLACK_URUK_PLATE_BOOTS = registerArmorPiece("black_uruk_plate_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item BLACK_URUK_COMMANDER_HELMET = registerArmorPiece("black_uruk_commander_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() .component(DataComponentTypesME.HELMET_ATTACHMENT_DATA, HelmetAttachmentDataComponent.newHelmetAttachment(HelmetAttachmentsME.SKULL)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item BLACK_URUK_COMMANDER_CHESTPLATE = registerCustomModelArmorPiece("black_uruk_commander_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item BLACK_CASTELLAN_HELMET = registerCustomModelArmorPiece("black_castellan_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item BLACK_CASTELLAN_CHESTPLATE = registerCustomModelArmorPiece("black_castellan_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.BLACK_CASTELLAN_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item BLACK_CASTELLAN_LEGGINGS = registerArmorPiece("black_castellan_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item BLACK_CASTELLAN_BOOTS = registerArmorPiece("black_castellan_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_BLACK_NUMENOREAN_PLATE_HELMET = registerCustomModelArmorPiece("mordor_black_numenorean_plate_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_BLACK_NUMENOREAN_PLATE_CHESTPLATE = registerCustomModelArmorPiece("mordor_black_numenorean_plate_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.MORDOR_BLACK_NUMENOREAN_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_BLACK_NUMENOREAN_PLATE_LEGGINGS = registerArmorPiece("mordor_black_numenorean_plate_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_BLACK_NUMENOREAN_PLATE_BOOTS = registerArmorPiece("mordor_black_numenorean_plate_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item BLACK_CASTELLAN_CAPE = registerBackAttachment("black_castellan_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.BLACK_CASTELLAN_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_BLACK_NUMENOREAN_CAPE = registerBackAttachment("mordor_black_numenorean_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.MORDOR_BLACK_NUMENOREAN_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item NAZGUL_HOOD = registerHelmetAttachment("nazgul_hood", (settings) -> new HelmetAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.HELMET_ATTACHMENT_DATA, HelmetAttachmentDataComponent.newHelmetAttachment(HelmetAttachmentsME.NAZGUL_HOOD)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item NAZGUL_ROBES = registerBackAttachment("nazgul_robes", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.NAZGUL_ROBES)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item RINGWRAITH_MAIL_HAUBERK = registerArmorPiece("ringwraith_mail_hauberk", (settings) -> new CustomChestplateItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item RINGWRAITH_LEGGINGS = registerArmorPiece("ringwraith_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item RINGWRAITH_BOOTS = registerArmorPiece("ringwraith_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item WARG_MORDOR_MAIL_ARMOR = registerDyeableArmorPiece("warg_mordor_mail_armor", Item::new, ItemSettingsME.wargArmor(ArmorMaterialsME.WARG_MORDOR_MAIL_ARMOR.material()) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item WARG_MORDOR_PLATE_ARMOR = registerGeneratedItem("warg_mordor_plate_armor", Item::new, ItemSettingsME.wargArmor(ArmorMaterialsME.WARG_MORDOR_PLATE_ARMOR.material()) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); //region DOL GULDUR public static final Item DOL_GULDUR_JAILER_COLLAR = registerArmorPiece("dol_guldur_jailer_collar", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T1, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item WEATHERED_DOL_GULDUR_JAILER_COLLAR = registerArmorPiece("weathered_dol_guldur_jailer_collar", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T1, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item DOL_GULDUR_EXECUTIONER_HOOD = registerCustomModelArmorPiece("dol_guldur_executioner_hood", (settings) -> new CustomHelmetItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item DOL_GULDUR_EXECUTIONER_CHESTPLATE = registerArmorPiece("dol_guldur_executioner_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item WEATHERED_DOL_GULDUR_EXECUTIONER_CHESTPLATE = registerArmorPiece("weathered_dol_guldur_executioner_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item DOL_GULDUR_PADDED_CHESTPLATE = registerArmorPiece("dol_guldur_padded_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item DOL_GULDUR_HUNTER_HELMET = registerCustomModelArmorPiece("dol_guldur_hunter_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item DOL_GULDUR_RAIDER_HELMET = registerCustomModelArmorPiece("dol_guldur_raider_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item WEATHERED_DOL_GULDUR_RAIDER_HELMET = registerCustomModelArmorPiece("weathered_dol_guldur_raider_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item DOL_GULDUR_RAIDER_CHESTPLATE = registerArmorPiece("dol_guldur_raider_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item WEATHERED_DOL_GULDUR_RAIDER_CHESTPLATE = registerArmorPiece("weathered_dol_guldur_raider_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item DOL_GULDUR_RAIDER_COAT = registerArmorPiece("dol_guldur_raider_coat", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item DOL_GULDUR_BOOTS = registerArmorPiece("dol_guldur_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item WEATHERED_DOL_GULDUR_BOOTS = registerArmorPiece("weathered_dol_guldur_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item DOL_GULDUR_MARAUDER_HELMET = registerCustomModelArmorPiece("dol_guldur_marauder_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item DOL_GULDUR_MARAUDER_CHESTPLATE = registerCustomModelArmorPiece("dol_guldur_marauder_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item DOL_GULDUR_MARAUDER_LEGGINGS = registerArmorPiece("dol_guldur_marauder_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item DOL_GULDUR_MARAUDER_BOOTS = registerArmorPiece("dol_guldur_marauder_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item WEATHERED_DOL_GULDUR_MARAUDER_HELMET = registerCustomModelArmorPiece("weathered_dol_guldur_marauder_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item WEATHERED_DOL_GULDUR_MARAUDER_CHESTPLATE = registerCustomModelArmorPiece("weathered_dol_guldur_marauder_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item WEATHERED_DOL_GULDUR_MARAUDER_LEGGINGS = registerArmorPiece("weathered_dol_guldur_marauder_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item WEATHERED_DOL_GULDUR_MARAUDER_BOOTS = registerArmorPiece("weathered_dol_guldur_marauder_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item DOL_GULDUR_STALKER_HELMET = registerDyeableCustomModelArmorPiece("dol_guldur_stalker_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(0x3D3232)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item DOL_GULDUR_STALKER_CHESTPLATE = registerDyeableCustomModelArmorPiece("dol_guldur_stalker_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.DOL_GULDUR_STALKER_CAPE)) .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(0x3D3232)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item DOL_GULDUR_STALKER_LEGGINGS = registerArmorPiece("dol_guldur_stalker_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item DOL_GULDUR_STALKER_BOOTS = registerArmorPiece("dol_guldur_stalker_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item WEATHERED_DOL_GULDUR_STALKER_HELMET = registerDyeableCustomModelArmorPiece("weathered_dol_guldur_stalker_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(0x3D3232)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item WEATHERED_DOL_GULDUR_STALKER_CHESTPLATE = registerDyeableCustomModelArmorPiece("weathered_dol_guldur_stalker_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.DOL_GULDUR_STALKER_CAPE)) .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(0x3D3232)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item WEATHERED_DOL_GULDUR_STALKER_LEGGINGS = registerArmorPiece("weathered_dol_guldur_stalker_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item WEATHERED_DOL_GULDUR_STALKER_BOOTS = registerArmorPiece("weathered_dol_guldur_stalker_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item BLACK_REAVER_HELMET = registerCustomModelArmorPiece("black_reaver_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item BLACK_REAVER_SHOULDER_CAPE = registerBackAttachment("black_reaver_shoulder_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.BLACK_REAVER_SHOULDER_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item DOL_GULDUR_STALKER_CAPE = registerBackAttachment("dol_guldur_stalker_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.DOL_GULDUR_STALKER_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); //endregion //endregion //region ISENGARD public static final Item URUK_HAI_LEATHER_SCOUT_CAP = registerCustomModelArmorPiece("uruk_hai_leather_scout_cap", (settings) -> new CustomHelmetItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_LEATHER_CHESTPLATE = registerArmorPiece("uruk_hai_leather_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_PAINTED_LEATHER_CHESTPLATE = registerArmorPiece("uruk_hai_painted_leather_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_LEATHER_HAUBERK = registerArmorPiece("uruk_hai_leather_hauberk", (settings) -> new CustomChestplateItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_BOOTS = registerArmorPiece("uruk_hai_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_LIGHT_HELMET = registerCustomModelArmorPiece("uruk_hai_light_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_PAINTED_LIGHT_HELMET = registerCustomModelArmorPiece("uruk_hai_painted_light_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_REINFORCED_HELMET = registerCustomModelArmorPiece("uruk_hai_reinforced_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_PAINTED_REINFORCED_HELMET = registerCustomModelArmorPiece("uruk_hai_painted_reinforced_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_MAIL_HAUBERK = registerArmorPiece("uruk_hai_mail_hauberk", (settings) -> new CustomChestplateItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_MAIL_COAT = registerArmorPiece("uruk_hai_mail_coat", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_MAIL_SKIRT = registerArmorPiece("uruk_hai_mail_skirt", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_SOLDIER_HELMET = registerCustomModelArmorPiece("uruk_hai_soldier_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_PAINTED_SOLDIER_HELMET = registerCustomModelArmorPiece("uruk_hai_painted_soldier_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_CUIRASS = registerArmorPiece("uruk_hai_cuirass", (settings) -> new CustomChestplateItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_PLATE_HELMET = registerCustomModelArmorPiece("uruk_hai_plate_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_PAINTED_PLATE_HELMET = registerCustomModelArmorPiece("uruk_hai_painted_plate_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_SAPPER_HELMET = registerCustomModelArmorPiece("uruk_hai_sapper_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_PAINTED_SAPPER_HELMET = registerCustomModelArmorPiece("uruk_hai_painted_sapper_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_BERSERKER_HELMET = registerCustomModelArmorPiece("uruk_hai_berserker_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_PAINTED_BERSERKER_HELMET = registerCustomModelArmorPiece("uruk_hai_painted_berserker_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_COMMANDER_HELMET = registerCustomModelArmorPiece("uruk_hai_commander_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_PAINTED_COMMANDER_HELMET = registerCustomModelArmorPiece("uruk_hai_painted_commander_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_PLATE_CHESTPLATE = registerCustomModelArmorPiece("uruk_hai_plate_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_PLATE_LEGGINGS = registerArmorPiece("uruk_hai_plate_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_PLATE_BOOTS = registerArmorPiece("uruk_hai_plate_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item ORTHANC_GUARD_HELMET = registerCustomModelArmorPiece("orthanc_guard_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item ORTHANC_COMMANDER_HELMET = registerCustomModelArmorPiece("orthanc_commander_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item ORTHANC_GUARD_CHESTPLATE = registerArmorPiece("orthanc_guard_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.ORTHANC_GUARD_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item ORTHANC_GUARD_LEGGINGS = registerArmorPiece("orthanc_guard_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item ORTHANC_GUARD_BOOTS = registerArmorPiece("orthanc_guard_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item ORTHANC_GUARD_CAPE = registerBackAttachment("orthanc_guard_cape", (settings) -> new BackAttachmentItem(settings, ArmorMaterialsME.FABRIC_T0), new Item.Settings() .component(DataComponentTypesME.BACK_ATTACHMENT_DATA, BackAttachmentDataComponent.newBackAttachment(BackAttachmentsME.ORTHANC_GUARD_CAPE)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item WARG_ISENGARD_PLATE_ARMOR = registerGeneratedItem("warg_isengard_plate_armor", Item::new, ItemSettingsME.wargArmor(ArmorMaterialsME.WARG_MORDOR_MAIL_ARMOR.material()) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); //endregion //region HOBGOB TRIBES public static final Item GUNDABAD_BONE_PAULDRON = registerDyeableArmorPiece("gundabad_bone_pauldron", (settings) -> new CustomChestplateItem(ArmorMaterialsME.LEATHER_T1, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(3944757)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GUNDABAD_SEEKER_HELMET = registerDyeableCustomModelArmorPiece("gundabad_seeker_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T2, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(3944757)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GUNDABAD_LEATHER_SCALE_COAT = registerDyeableArmorPiece("gundabad_leather_scale_coat", (settings) -> new CustomChestplateItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(3944757)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GUNDABAD_LEATHER_LEGGINGS = registerDyeableArmorPiece("gundabad_leather_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(3944757)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GUNDABAD_LACED_BOOTS = registerDyeableArmorPiece("gundabad_laced_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(3944757)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GUNDABAD_SKULLCAP_HELMET = registerDyeableCustomModelArmorPiece("gundabad_skullcap_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(3944757)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GUNDABAD_MAIL_COIF = registerArmorPiece("gundabad_mail_coif", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GUNDABAD_MAIL_HAUBERK = registerArmorPiece("gundabad_mail_hauberk", (settings) -> new CustomChestplateItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GUNDABAD_MAIL_COAT = registerDyeableArmorPiece("gundabad_mail_coat", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(3944757)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GUNDABAD_SCREECHER_HELMET = registerDyeableCustomModelArmorPiece("gundabad_screecher_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(3944757)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GUNDABAD_SOLDIER_HELMET = registerDyeableCustomModelArmorPiece("gundabad_soldier_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(3944757)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GUNDABAD_REINFORCED_LEATHER_SCALE_COAT = registerDyeableArmorPiece("gundabad_reinforced_leather_scale_coat", (settings) -> new CustomChestplateItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(3944757)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GUNDABAD_REINFORCED_LEATHER_VEST = registerDyeableArmorPiece("gundabad_reinforced_leather_vest", (settings) -> new CustomChestplateItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(3944757)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GUNDABAD_CAPTAIN_HELMET = registerDyeableCustomModelArmorPiece("gundabad_captain_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(3944757)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GUNDABAD_HOBGOBLIN_PLATE_CRESTED_HELMET = registerCustomModelArmorPiece("gundabad_hobgoblin_plate_crested_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GUNDABAD_HOBGOBLIN_PLATE_LARGE_CREST_HELMET = registerCustomModelArmorPiece("gundabad_hobgoblin_plate_large_crest_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GUNDABAD_HOBGOBLIN_PLATE_LONG_HORN_HELMET = registerCustomModelArmorPiece("gundabad_hobgoblin_plate_long_horn_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GUNDABAD_HOBGOBLIN_PLATE_SMALL_HORN_HELMET = registerCustomModelArmorPiece("gundabad_hobgoblin_plate_small_horn_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GUNDABAD_HOBGOBLIN_PLATE_CHESTPLATE = registerCustomModelArmorPiece("gundabad_hobgoblin_plate_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GUNDABAD_HOBGOBLIN_MAIL_COAT = registerArmorPiece("gundabad_hobgoblin_mail_coat", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GUNDABAD_HOBGOBLIN_PLATED_BOOTS = registerArmorPiece("gundabad_hobgoblin_plated_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item WARG_GUNDABAD_PLATE_ARMOR = registerGeneratedItem("warg_gundabad_plate_armor", Item::new, ItemSettingsME.wargArmor(ArmorMaterialsME.WARG_GUNDABAD_PLATE_ARMOR.material()) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); //endregion //region MORIA GOBS public static final Item MORIA_GOBLIN_SNAGA_NASAL_HELMET = registerDyeableCustomModelArmorPiece("moria_goblin_snaga_nasal_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T2, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(0x441E17)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item MORIA_GOBLIN_SNAGA_HELMET = registerDyeableCustomModelArmorPiece("moria_goblin_snaga_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T2, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(0x441E17)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item MORIA_GOBLIN_SNAGA_CUIRASS = registerCustomModelArmorPiece("moria_goblin_snaga_cuirass", (settings) -> new CustomChestplateItem(ArmorMaterialsME.CRUDE_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item MORIA_GOBLIN_SNAGA_BELLY_PLATE = registerCustomModelArmorPiece("moria_goblin_snaga_belly_plate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.CRUDE_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item MORIA_GOBLIN_CLOTH_COAT = registerDyeableArmorPiece("moria_goblin_cloth_coat", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.CRUDE_T2, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(0x441E17)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item MORIA_GOBLIN_SNAGA_SKIRT = registerArmorPiece("moria_goblin_snaga_skirt", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.CRUDE_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item MORIA_GOBLIN_CRUDE_BOOTS = registerArmorPiece("moria_goblin_crude_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.CRUDE_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item MORIA_GOBLIN_CHARGER_HELMET = registerCustomModelArmorPiece("moria_goblin_charger_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item MORIA_RUINED_DWARVEN_HELMET = registerCustomModelArmorPiece("moria_ruined_dwarven_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item MORIA_GOBLIN_HAUBERK = registerDyeableCustomModelArmorPiece("moria_goblin_hauberk", (settings) -> new CustomChestplateItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(0x441E17)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item MORIA_RUINED_DWARVEN_HAUBERK = registerCustomModelArmorPiece("moria_ruined_dwarven_hauberk", (settings) -> new CustomChestplateItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item MORIA_GOBLIN_BITER_HELMET = registerCustomModelArmorPiece("moria_goblin_biter_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item MORIA_GOBLIN_MANDIBLE_HELMET = registerCustomModelArmorPiece("moria_goblin_mandible_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item MORIA_GOBLIN_REINFORCED_COAT = registerDyeableCustomModelArmorPiece("moria_goblin_reinforced_coat", (settings) -> new CustomChestplateItem(ArmorMaterialsME.BURZUM_STEEL_T4, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(0x441E17)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item MORIA_GOBLIN_SCREECHER_HELMET = registerCustomModelArmorPiece("moria_goblin_screecher_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item MORIA_GOBLIN_SCREECHER_CHESTPLATE = registerCustomModelArmorPiece("moria_goblin_screecher_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item MORIA_GOBLIN_SCREECHER_LEGGINGS = registerDyeableArmorPiece("moria_goblin_screecher_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() .component(DataComponentTypes.DYED_COLOR, new DyedColorComponent(0x441E17)) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item MORIA_GOBLIN_SCREECHER_BOOTS = registerArmorPiece("moria_goblin_screecher_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item MORIA_GOBLIN_CAPTAIN_HELMET = registerCustomModelArmorPiece("moria_goblin_captain_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item MORIA_GOBLIN_CHIEF_HELMET = registerCustomModelArmorPiece("moria_goblin_chief_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item MORIA_GOBLIN_CHIEF_CHESTPLATE = registerCustomModelArmorPiece("moria_goblin_chief_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item MORIA_GOBLIN_CHIEF_LEGGINGS = registerArmorPiece("moria_goblin_chief_leggings", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item MORIA_GOBLIN_CHIEF_BOOTS = registerArmorPiece("moria_goblin_chief_boots", (settings) -> new CustomBootsItem(ArmorMaterialsME.BURZUM_STEEL_T5, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); //endregion //region GOBLIN TOWN public static final Item GOBLIN_KING_CROWN = registerCustomModelArmorPiece("goblin_king_crown", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BONE_T0, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GOBLIN_TOWN_CAP = registerCustomModelArmorPiece("goblin_town_cap", (settings) -> new CustomHelmetItem(ArmorMaterialsME.FABRIC_T1, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GOBLIN_TOWN_BONE_MANDIBLE_CAP = registerCustomModelArmorPiece("goblin_town_bone_mandible_cap", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BONE_T1, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GOBLIN_TOWN_CROSSBONES_HELMET = registerCustomModelArmorPiece("goblin_town_crossbones_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.BONE_T1, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GOBLIN_TOWN_BONE_STRAP = registerArmorPiece("goblin_town_bone_strap", (settings) -> new CustomChestplateItem(ArmorMaterialsME.BONE_T1, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GOBLIN_TOWN_RIBCAGE = registerArmorPiece("goblin_town_ribcage", (settings) -> new CustomChestplateItem(ArmorMaterialsME.BONE_T1, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GOBLIN_TOWN_LOINCLOTH = registerArmorPiece("goblin_town_loincloth", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.FABRIC_T1, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GOBLIN_TOWN_SANDALS = registerArmorPiece("goblin_town_sandals", (settings) -> new CustomBootsItem(ArmorMaterialsME.FABRIC_T1, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GOBLIN_TOWN_NASAL_HELMET = registerCustomModelArmorPiece("goblin_town_nasal_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GOBLIN_TOWN_SKULL_CAP = registerCustomModelArmorPiece("goblin_town_skull_cap", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GOBLIN_TOWN_TUNNELER_HELMET = registerCustomModelArmorPiece("goblin_town_tunneler_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GOBLIN_TOWN_BONE_SCALE_COAT = registerCustomModelArmorPiece("goblin_town_bone_scale_coat", (settings) -> new CustomChestplateItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GOBLIN_TOWN_CARAPACE_HARNESS = registerCustomModelArmorPiece("goblin_town_carapace_harness", (settings) -> new CustomChestplateItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GOBLIN_TOWN_CRUDE_SCALE_CHESTPLATE = registerCustomModelArmorPiece("goblin_town_crude_scale_chestplate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GOBLIN_TOWN_LEATHER_SKIRT = registerArmorPiece("goblin_town_leather_skirt", (settings) -> new CustomLeggingsItem(ArmorMaterialsME.LEATHER_T2, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GOBLIN_TOWN_HEAVY_NASAL_HELMET = registerCustomModelArmorPiece("goblin_town_heavy_nasal_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GOBLIN_TOWN_MANDIBLE_HELMET = registerCustomModelArmorPiece("goblin_town_mandible_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GOBLIN_TOWN_SKULKER_GUARD_HELMET = registerCustomModelArmorPiece("goblin_town_skulker_guard_helmet", (settings) -> new CustomHelmetItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GOBLIN_TOWN_BELLY_PLATE = registerArmorPiece("goblin_town_belly_plate", (settings) -> new CustomChestplateItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GOBLIN_TOWN_REINFORCED_CARAPACE = registerCustomModelArmorPiece("goblin_town_reinforced_carapace", (settings) -> new CustomChestplateItem(ArmorMaterialsME.CRUDE_T3, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); //endregion //endregion @@ -2049,7 +2050,7 @@ public class EquipmentItemsME { public static final Item HELMET_OF_HELM_HAMMERHAND = registerCustomModelArmorPiece("helmet_of_helm_hammerhand", (settings) -> new CustomArtefactHelmetItem(ArmorMaterialsME.STEEL_T5, settings), new Item.Settings().rarity(Rarity.EPIC) - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue())) + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue())) .component(DataComponentTypes.LORE, ArtefactUtils.getArtefactLore("helmet_of_helm_hammerhand"))); private static Item registerHelmetAttachment(String name, Function factory, Item.Settings settings) { @@ -2144,7 +2145,7 @@ private static Item registerItem(Item item, String name){ case HEAVY -> ArmorTags.heavyArmors.add(item); } } - RegistryAliases.aliases.add(new RegistryAliases.Alias(Registries.ITEM, name)); + RegistryAliasesME.aliases.add(new RegistryAliasesME.Alias(Registries.ITEM, name)); return Registry.register(Registries.ITEM, ModBlocks.keyOfItem(name), item); } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/item/FoodItemsME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/item/FoodItemsME.java index 534881b11a..9daf2a5370 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/item/FoodItemsME.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/item/FoodItemsME.java @@ -19,7 +19,7 @@ import net.minecraft.registry.Registries; import net.minecraft.registry.Registry; import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.registries.RegistryAliases; +import net.sevenstars.middleearth.registries.RegistryAliasesME; import java.util.function.Function; @@ -125,7 +125,7 @@ private static Item registerItem(String name, Function fact Item item = (Item)factory.apply(settings.registryKey(ModBlocks.keyOfItem(name))); ItemGroupsME.FOOD_CONTENTS.add(item.getDefaultStack()); TranslationEntries.itemEntries.add(item); - RegistryAliases.aliases.add(new RegistryAliases.Alias(Registries.ITEM, name)); + RegistryAliasesME.aliases.add(new RegistryAliasesME.Alias(Registries.ITEM, name)); return Registry.register(Registries.ITEM, Identifier.of(MiddleEarth.MOD_ID, name), item); } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/item/NatureBlockItemsME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/item/NatureBlockItemsME.java index af768bed53..22c1144788 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/item/NatureBlockItemsME.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/item/NatureBlockItemsME.java @@ -10,7 +10,7 @@ import net.minecraft.registry.Registries; import net.minecraft.registry.Registry; import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.registries.RegistryAliases; +import net.sevenstars.middleearth.registries.RegistryAliasesME; import java.util.function.Function; @@ -43,7 +43,7 @@ private static Item registerItem(String name, Function fact Item item = (Item)factory.apply(settings.registryKey(ModBlocks.keyOfItem(name))); ItemGroupsME.NATURE_BLOCKS_CONTENTS.add(item.getDefaultStack()); TranslationEntries.itemEntries.add(item); - RegistryAliases.aliases.add(new RegistryAliases.Alias(Registries.ITEM, name)); + RegistryAliasesME.aliases.add(new RegistryAliasesME.Alias(Registries.ITEM, name)); return Registry.register(Registries.ITEM, Identifier.of(MiddleEarth.MOD_ID, name), item); } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/item/ResourceItemsME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/item/ResourceItemsME.java index 7d4fbdb1a4..579860d606 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/item/ResourceItemsME.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/item/ResourceItemsME.java @@ -1,13 +1,12 @@ package net.sevenstars.middleearth.item; import net.minecraft.component.DataComponentTypes; -import net.minecraft.entity.EntityType; import net.sevenstars.middleearth.MiddleEarth; import net.sevenstars.middleearth.block.registration.ModBlocks; import net.sevenstars.middleearth.block.registration.ModNatureBlocks; import net.sevenstars.middleearth.block.special.CustomWaterloggableTallPlantBlock; import net.sevenstars.middleearth.datageneration.content.TranslationEntries; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.sevenstars.middleearth.item.items.*; import net.sevenstars.middleearth.item.items.weapons.ranged.LitPineconeItem; import net.sevenstars.middleearth.item.items.weapons.ranged.PebbleItem; @@ -23,7 +22,7 @@ import net.minecraft.registry.Registry; import net.minecraft.util.Identifier; import net.minecraft.util.Rarity; -import net.sevenstars.middleearth.registries.RegistryAliases; +import net.sevenstars.middleearth.registries.RegistryAliasesME; import java.util.function.Function; @@ -45,7 +44,7 @@ public class ResourceItemsME { public static final Item REINFORCED_BARREL = registerItem("reinforced_barrel", (settings) -> { - return new BoatItem(ModEntities.REINFORCED_BARREL, settings); + return new BoatItem(EntitiesME.REINFORCED_BARREL, settings); }, new Item.Settings().maxCount(1)); public static final Item RAW_TIN = registerItem("raw_tin", @@ -284,7 +283,7 @@ private static Item registerItem(String name, Function fact Item item = factory.apply(settings.registryKey(ModBlocks.keyOfItem(name))); ItemGroupsME.RESOURCES_CONTENTS.add(item.getDefaultStack()); TranslationEntries.itemEntries.add(item); - RegistryAliases.aliases.add(new RegistryAliases.Alias(Registries.ITEM, name)); + RegistryAliasesME.aliases.add(new RegistryAliasesME.Alias(Registries.ITEM, name)); return Registry.register(Registries.ITEM, Identifier.of(MiddleEarth.MOD_ID, name), item); } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/item/ToolItemsME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/item/ToolItemsME.java index 038105ad1d..9a17605875 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/item/ToolItemsME.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/item/ToolItemsME.java @@ -13,7 +13,7 @@ import net.sevenstars.middleearth.item.items.weapons.CustomAxeWeaponItem; import net.sevenstars.middleearth.item.utils.ItemGroupsME; import net.sevenstars.middleearth.item.utils.ToolMaterialsME; -import net.sevenstars.middleearth.registries.RegistryAliases; +import net.sevenstars.middleearth.registries.RegistryAliasesME; import java.util.function.Function; @@ -154,7 +154,7 @@ public static Item registerItem2dGUI3dPerson(String name, Function new CustomSwordWeaponItem(ToolMaterialsME.STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue())), true); public static final Item GONDORIAN_LONGSWORD = registerItemWithModel("gondorian_longsword", (settings) -> new CustomLongswordWeaponItem(ToolMaterialsME.STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue())), true); public static final Item GONDORIAN_DAGGER = registerItemWithModel("gondorian_dagger", (settings) -> new CustomDaggerWeaponItem(ToolMaterialsME.STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue())), false); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue())), false); public static final Item GONDORIAN_AXE = registerItemWithModel("gondorian_axe", (settings) -> new CustomAxeWeaponItem(ToolMaterialsME.STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue())), true); public static final Item GONDORIAN_SPEAR = registerItemWithSpearModel("gondorian_spear", (settings) -> new CustomSpearWeaponItem(ToolMaterialsME.STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_BOW = registerBowItem("gondorian_bow", (settings) -> new CustomBowWeaponItem(RangedWeaponTypesME.BOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_LONGBOW = registerBigBowItem("gondorian_longbow", (settings) -> new CustomLongbowWeaponItem(RangedWeaponTypesME.LONGBOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_NOBLE_SWORD = registerItemWithModel("gondorian_noble_sword", (settings) -> new CustomSwordWeaponItem(ToolMaterialsME.NOBLE_STEEL,settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue())), true); public static final Item GONDORIAN_NOBLE_LONGSWORD = registerItemWithModel("gondorian_noble_longsword", (settings) -> new CustomLongswordWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue())), true); public static final Item GONDORIAN_NOBLE_DAGGER = registerItemWithModel("gondorian_noble_dagger", (settings) -> new CustomDaggerWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue())), false); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue())), false); public static final Item GONDORIAN_NOBLE_AXE = registerItemWithModel("gondorian_noble_axe", (settings) -> new CustomAxeWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue())), true); public static final Item GONDORIAN_NOBLE_SPEAR = registerItemWithSpearModel("gondorian_noble_spear", (settings) -> new CustomSpearWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_NOBLE_LONGBOW = registerBigBowItem("gondorian_noble_longbow", (settings) -> new CustomLongbowWeaponItem(RangedWeaponTypesME.NOBLE_LONGBOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_FOUNTAIN_GUARD_SPEAR = registerItemWithSpearModel("gondorian_fountain_guard_spear", (settings) -> new CustomSpearWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_SHIELD = registerShield("gondorian_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_TOWER_SHIELD = registerShield("gondorian_tower_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_KINGS_GUARD_TOWER_SHIELD = registerShield("gondorian_kings_guard_tower_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item LAST_ALLIANCE_HEIRLOOM_TOWER_SHIELD = registerShield("last_alliance_heirloom_tower_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_HERO_SHIELD = registerShield("gondorian_hero_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_KNIGHT_SHIELD = registerShield("gondorian_knight_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); public static final Item GONDORIAN_ORNAMENTED_KNIGHT_SHIELD = registerShield("gondorian_ornamented_knight_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.GONDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.GONDOR.getValue()))); //endregion //region ROHAN public static final Item ROHIRRIC_SWORD = registerItemWithModel("rohirric_sword", (settings) -> new CustomSwordWeaponItem(ToolMaterialsME.STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue())), true); public static final Item ROHIRRIC_LONGSWORD = registerItemWithModel("rohirric_longsword", (settings) -> new CustomLongswordWeaponItem(ToolMaterialsME.STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue())), true); public static final Item ROHIRRIC_DAGGER = registerItemWithModel("rohirric_dagger", (settings) -> new CustomDaggerWeaponItem(ToolMaterialsME.STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue())), false); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue())), false); public static final Item ROHIRRIC_AXE = registerItemWithModel("rohirric_axe", (settings) -> new CustomAxeWeaponItem(ToolMaterialsME.STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue())), true); public static final Item ROHIRRIC_SPEAR = registerItemWithSpearModel("rohirric_spear", (settings) -> new CustomSpearWeaponItem(ToolMaterialsME.STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_BOW = registerBigBowItem("rohirric_bow", (settings) -> new CustomBowWeaponItem(RangedWeaponTypesME.BOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_LONGBOW = registerBigBowItem("rohirric_longbow", (settings) -> new CustomLongbowWeaponItem(RangedWeaponTypesME.LONGBOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_NOBLE_SWORD = registerItemWithModel("rohirric_noble_sword", (settings) -> new CustomSwordWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue())), true); public static final Item ROHIRRIC_NOBLE_LONGSWORD = registerItemWithModel("rohirric_noble_longsword", (settings) -> new CustomLongswordWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue())), true); public static final Item ROHIRRIC_NOBLE_DAGGER = registerItemWithModel("rohirric_noble_dagger", (settings) -> new CustomDaggerWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue())), false); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue())), false); public static final Item ROHIRRIC_NOBLE_AXE = registerItemWithModel("rohirric_noble_axe", (settings) -> new CustomAxeWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue())), true); public static final Item ROHIRRIC_NOBLE_SPEAR = registerItemWithSpearModel("rohirric_noble_spear", (settings) -> new CustomSpearWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_NOBLE_BOW = registerBigBowItem("rohirric_noble_bow", (settings) -> new CustomBowWeaponItem(RangedWeaponTypesME.NOBLE_BOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_SHIELD = registerShield("rohirric_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_BUCKING_HORSE_SHIELD = registerShield("rohirric_bucking_horse_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_GALLOPING_HORSE_SHIELD = registerShield("rohirric_galloping_horse_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_HORSE_HEAD_SHIELD = registerShield("rohirric_horse_head_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_PLAINSMAN_SHIELD = registerShield("rohirric_plainsman_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_TWIN_HORSES_SHIELD = registerShield("rohirric_twin_horses_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_EORLING_SHIELD = registerShield("rohirric_eorling_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_ORNAMENTED_SHIELD = registerShield("rohirric_ornamented_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); public static final Item ROHIRRIC_ROYAL_GUARD_SHIELD = registerShield("rohirric_royal_guard_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ROHAN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ROHAN.getValue()))); //endregion //region DALE public static final Item DALISH_SWORD = registerItemWithModel("dalish_sword", (settings) -> new CustomSwordWeaponItem(ToolMaterialsME.STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue())), true); public static final Item DALISH_LONGSWORD = registerItemWithModel("dalish_longsword", (settings) -> new CustomLongswordWeaponItem(ToolMaterialsME.STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue())), true); public static final Item DALISH_DAGGER = registerItemWithModel("dalish_dagger", (settings) -> new CustomDaggerWeaponItem(ToolMaterialsME.STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue())), false); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue())), false); public static final Item DALISH_AXE = registerItemWithModel("dalish_axe", (settings) -> new CustomAxeWeaponItem(ToolMaterialsME.STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue())), true); public static final Item DALISH_SPEAR = registerItemWithSpearModel("dalish_spear", (settings) -> new CustomSpearWeaponItem(ToolMaterialsME.STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_LONGBOW = registerBigBowItem("dalish_longbow", (settings) -> new CustomLongbowWeaponItem(RangedWeaponTypesME.LONGBOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_NOBLE_SWORD = registerItemWithModel("dalish_noble_sword", (settings) -> new CustomSwordWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue())), true); public static final Item DALISH_NOBLE_LONGSWORD = registerItemWithModel("dalish_noble_longsword", (settings) -> new CustomLongswordWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue())), true); public static final Item DALISH_NOBLE_DAGGER = registerItemWithModel("dalish_noble_dagger", (settings) -> new CustomDaggerWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue())), false); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue())), false); public static final Item DALISH_NOBLE_AXE = registerItemWithModel("dalish_noble_axe", (settings) -> new CustomAxeWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue())), true); public static final Item DALISH_NOBLE_SPEAR = registerItemWithSpearModel("dalish_noble_spear", (settings) -> new CustomSpearWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_NOBLE_LONGBOW = registerBigBowItem("dalish_noble_longbow", (settings) -> new CustomLongbowWeaponItem(RangedWeaponTypesME.NOBLE_LONGBOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_HEYDAY_SWORD = registerItemWithModel("dalish_heyday_sword", (settings) -> new CustomSwordWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue())), true); public static final Item DALISH_HEYDAY_LONGSWORD = registerItemWithModel("dalish_heyday_longsword", (settings) -> new CustomLongswordWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue())), true); public static final Item DALISH_HEYDAY_SCIMITAR = registerItemWithModel("dalish_heyday_scimitar", (settings) -> new CustomLongswordWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue())), true); public static final Item DALISH_HEYDAY_DAGGER = registerItemWithModel("dalish_heyday_dagger", (settings) -> new CustomDaggerWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue())), false); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue())), false); public static final Item DALISH_HEYDAY_AXE = registerItemWithModel("dalish_heyday_axe", (settings) -> new CustomAxeWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue())), true); public static final Item DALISH_HEYDAY_SPEAR = registerItemWithSpearModel("dalish_heyday_spear", (settings) -> new CustomSpearWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_HEYDAY_LONGBOW = registerBigBowItem("dalish_heyday_longbow", (settings) -> new CustomLongbowWeaponItem(RangedWeaponTypesME.NOBLE_LONGBOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_BLUE_OVAL_SHIELD = registerShield("dalish_blue_oval_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_BARDING_OVAL_SHIELD = registerShield("dalish_barding_oval_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_BLUE_BRACED_SHIELD = registerShield("dalish_blue_braced_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_BARDING_BRACED_SHIELD = registerShield("dalish_barding_braced_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_HEAVY_SHIELD = registerShield("dalish_heavy_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_BARDING_HEAVY_SHIELD = registerShield("dalish_barding_heavy_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_ROYAL_HEAVY_SHIELD = registerShield("dalish_royal_heavy_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_ROYAL_ROUND_SHIELD = registerShield("dalish_royal_round_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); public static final Item DALISH_HEYDAY_ROUND_SHIELD = registerShield("dalish_heyday_round_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.DALE.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.DALE.getValue()))); //endregion //endregion @@ -380,231 +380,231 @@ public class WeaponItemsME { //region LOTHLORIEN public static final Item LORIEN_SWORD = registerItemWithModel("lorien_sword", (settings) -> new CustomSwordWeaponItem(ToolMaterialsME.EDHEL_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue())), true); public static final Item LORIEN_GLAIVE = registerItemWithModel("lorien_glaive", (settings) -> new CustomLongswordWeaponItem(ToolMaterialsME.EDHEL_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue())), true); public static final Item LORIEN_DAGGER = registerItemWithModel("lorien_dagger", (settings) -> new CustomDaggerWeaponItem(ToolMaterialsME.EDHEL_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue())), false); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue())), false); public static final Item LORIEN_AXE = registerItemWithModel("lorien_axe", (settings) -> new CustomAxeWeaponItem(ToolMaterialsME.EDHEL_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue())), true); public static final Item LORIEN_SPEAR = registerItemWithSpearModel("lorien_spear", (settings) -> new CustomSpearWeaponItem(ToolMaterialsME.EDHEL_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item LORIEN_BOW = registerBigBowItem("lorien_bow", (settings) -> new CustomBowWeaponItem(RangedWeaponTypesME.BOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item LORIEN_LONGBOW = registerBigBowItem("lorien_longbow", (settings) -> new CustomLongbowWeaponItem(RangedWeaponTypesME.LONGBOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item LORIEN_NOBLE_SWORD = registerItemWithModel("lorien_noble_sword", (settings) -> new CustomSwordWeaponItem(ToolMaterialsME.NOBLE_EDHEL_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue())), true); public static final Item LORIEN_NOBLE_GLAIVE = registerItemWithModel("lorien_noble_glaive", (settings) -> new CustomLongswordWeaponItem(ToolMaterialsME.NOBLE_EDHEL_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue())), true); public static final Item LORIEN_NOBLE_DAGGER = registerItemWithModel("lorien_noble_dagger", (settings) -> new CustomDaggerWeaponItem(ToolMaterialsME.NOBLE_EDHEL_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue())), false); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue())), false); public static final Item LORIEN_NOBLE_AXE = registerItemWithModel("lorien_noble_axe", (settings) -> new CustomAxeWeaponItem(ToolMaterialsME.NOBLE_EDHEL_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue())), true); public static final Item LORIEN_NOBLE_SPEAR = registerItemWithSpearModel("lorien_noble_spear", (settings) -> new CustomSpearWeaponItem(ToolMaterialsME.NOBLE_EDHEL_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item LORIEN_NOBLE_LONGBOW = registerBigBowItem("lorien_noble_longbow", (settings) -> new CustomLongbowWeaponItem(RangedWeaponTypesME.NOBLE_LONGBOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item LORIEN_SHIELD = registerShield("lorien_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item LORIEN_LAURELS_SHIELD = registerShield("lorien_laurels_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item LORIEN_MALLORN_SHIELD = registerShield("lorien_mallorn_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item GALADHRIM_SHIELD = registerShield("galadhrim_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item GALADHRIM_LORD_SHIELD = registerShield("galadhrim_lord_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); //endregion //region WOODLAND_REALM public static final Item WOODLAND_REALM_SWORD = registerItemWithModel("woodland_realm_sword", (settings) -> new CustomSwordWeaponItem(ToolMaterialsME.EDHEL_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue())), true); public static final Item WOODLAND_REALM_LONGSWORD = registerItemWithModel("woodland_realm_longsword", (settings) -> new CustomLongswordWeaponItem(ToolMaterialsME.EDHEL_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue())), true); public static final Item WOODLAND_REALM_AXE = registerItemWithModel("woodland_realm_axe", (settings) -> new CustomAxeWeaponItem(ToolMaterialsME.EDHEL_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue())), true); public static final Item WOODLAND_REALM_SPEAR = registerItemWithSpearModel("woodland_realm_spear", (settings) -> new CustomSpearWeaponItem(ToolMaterialsME.EDHEL_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_BOW = registerBigBowItem("woodland_realm_bow", (settings) -> new CustomBowWeaponItem(RangedWeaponTypesME.BOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_LONGBOW = registerBigBowItem("woodland_realm_longbow", (settings) -> new CustomLongbowWeaponItem(RangedWeaponTypesME.LONGBOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_NOBLE_SWORD = registerItemWithModel("woodland_realm_noble_sword", (settings) -> new CustomSwordWeaponItem(ToolMaterialsME.NOBLE_EDHEL_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue())), true); public static final Item WOODLAND_REALM_NOBLE_LONGSWORD = registerItemWithModel("woodland_realm_noble_longsword", (settings) -> new CustomLongswordWeaponItem(ToolMaterialsME.NOBLE_EDHEL_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue())), true); public static final Item WOODLAND_REALM_NOBLE_DAGGER = registerItemWithModel("woodland_realm_noble_dagger", (settings) -> new CustomDaggerWeaponItem(ToolMaterialsME.NOBLE_EDHEL_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue())), false); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue())), false); public static final Item WOODLAND_REALM_NOBLE_AXE = registerItemWithModel("woodland_realm_noble_axe", (settings) -> new CustomAxeWeaponItem(ToolMaterialsME.NOBLE_EDHEL_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue())), true); public static final Item WOODLAND_REALM_NOBLE_SPEAR = registerItemWithSpearModel("woodland_realm_noble_spear", (settings) -> new CustomSpearWeaponItem(ToolMaterialsME.NOBLE_EDHEL_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_NOBLE_BOW = registerBigBowItem("woodland_realm_noble_bow", (settings) -> new CustomBowWeaponItem(RangedWeaponTypesME.NOBLE_BOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_NOBLE_LONGBOW = registerBigBowItem("woodland_realm_noble_longbow", (settings) -> new CustomLongbowWeaponItem(RangedWeaponTypesME.NOBLE_LONGBOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_BUCKLER_SHIELD = registerShield("woodland_realm_buckler_shield", (settings) -> new CustomShieldItem(ShieldTypesME.LIGHT_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_SCOUT_SHIELD = registerShield("woodland_realm_scout_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_SCOUT_BRONZE_SHIELD = registerShield("woodland_realm_scout_bronze_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_HEAVY_SHIELD = registerShield("woodland_realm_heavy_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_HEAVY_GREEN_SHIELD = registerShield("woodland_realm_heavy_green_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_HEAVY_BLUE_SHIELD = registerShield("woodland_realm_heavy_blue_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_HEAVY_ORNAMENTED_SHIELD = registerShield("woodland_realm_heavy_ornamented_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_HEAVY_ORNAMENTED_GREEN_SHIELD = registerShield("woodland_realm_heavy_ornamented_green_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_GLADE_SHIELD = registerShield("woodland_realm_glade_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_NIGHTSHADE_SHIELD = registerShield("woodland_realm_nightshade_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item WOODLAND_REALM_NIGHTSHADE_ORNAMENTED_SHIELD = registerShield("woodland_realm_nightshade_ornamented_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item ERYN_GALEN_SHIELD = registerShield("eryn_galen_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); public static final Item ERYN_GALEN_TARNISHED_SHIELD = registerShield("eryn_galen_tarnished_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LOTHLORIEN.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LOTHLORIEN.getValue()))); //endregion //region EREBOR public static final Item EREBOR_SWORD = registerItemWithModel("erebor_sword", (settings) -> new CustomSwordWeaponItem(ToolMaterialsME.KHAZAD_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue())), true); public static final Item EREBOR_LONGSWORD = registerItemWithModel("erebor_longsword", (settings) -> new CustomLongswordWeaponItem(ToolMaterialsME.KHAZAD_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue())), true); public static final Item EREBOR_DAGGER = registerItemWithModel("erebor_dagger", (settings) -> new CustomDaggerWeaponItem(ToolMaterialsME.KHAZAD_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue())), false); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue())), false); public static final Item EREBOR_AXE = registerItemWithModel("erebor_axe", (settings) -> new CustomAxeWeaponItem(ToolMaterialsME.KHAZAD_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue())), true); public static final Item EREBOR_SPEAR = registerItemWithSpearModel("erebor_spear", (settings) -> new CustomSpearWeaponItem(ToolMaterialsME.KHAZAD_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_BOW = registerBigBowItem("erebor_bow", (settings) -> new CustomBowWeaponItem(RangedWeaponTypesME.BOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_CROSSBOW = registerCrossbowItem("erebor_crossbow", (settings) -> new CustomCrossbowWeaponItem(RangedWeaponTypesME.CROSSBOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_NOBLE_SWORD = registerItemWithModel("erebor_noble_sword", (settings) -> new CustomSwordWeaponItem(ToolMaterialsME.NOBLE_KHAZAD_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue())), true); public static final Item EREBOR_NOBLE_LONGSWORD = registerItemWithModel("erebor_noble_longsword", (settings) -> new CustomLongswordWeaponItem(ToolMaterialsME.NOBLE_KHAZAD_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue())), true); public static final Item EREBOR_NOBLE_DAGGER = registerItemWithModel("erebor_noble_dagger", (settings) -> new CustomDaggerWeaponItem(ToolMaterialsME.NOBLE_KHAZAD_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue())), false); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue())), false); public static final Item EREBOR_NOBLE_AXE = registerItemWithModel("erebor_noble_axe", (settings) -> new CustomAxeWeaponItem(ToolMaterialsME.NOBLE_KHAZAD_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue())), true); public static final Item EREBOR_NOBLE_SPEAR = registerItemWithSpearModel("erebor_noble_spear", (settings) -> new CustomSpearWeaponItem(ToolMaterialsME.NOBLE_KHAZAD_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_NOBLE_BOW = registerBigBowItem("erebor_noble_bow", (settings) -> new CustomBowWeaponItem(RangedWeaponTypesME.NOBLE_BOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_NOBLE_CROSSBOW = registerCrossbowItem("erebor_noble_crossbow", (settings) -> new CustomCrossbowWeaponItem(RangedWeaponTypesME.NOBLE_CROSSBOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_SHIELD = registerShield("erebor_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_CROSS_SHIELD = registerShield("erebor_cross_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_PLATED_SHIELD = registerShield("erebor_plated_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_ORNAMENTED_SHIELD = registerShield("erebor_ornamented_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_REINFORCED_SHIELD = registerShield("erebor_reinforced_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_BUCKLER_SHIELD = registerShield("erebor_buckler_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_TOWER_SHIELD = registerShield("erebor_tower_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_REINFORCED_TOWER_SHIELD = registerShield("erebor_reinforced_tower_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item EREBOR_ORNAMENTED_TOWER_SHIELD = registerShield("erebor_ornamented_tower_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item RAVENHILL_TOWER_SHIELD = registerShield("ravenhill_tower_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item RAVENHILL_REINFORCED_TOWER_SHIELD = registerShield("ravenhill_reinforced_tower_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); public static final Item RAVENHILL_ORNAMENTED_TOWER_SHIELD = registerShield("ravenhill_ornamented_tower_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.LONGBEARDS_EREBOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.LONGBEARDS_EREBOR.getValue()))); //endregion public static final Item ORC_SWORD = registerItemWithModel("orc_sword", @@ -638,188 +638,188 @@ public class WeaponItemsME { //region MORDOR public static final Item MORDOR_FALCHION = registerItemWithModel("mordor_falchion", (settings) -> new CustomSwordWeaponItem(ToolMaterialsME.BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue())), true); public static final Item MORDOR_SCIMITAR = registerItemWithModel("mordor_scimitar", (settings) -> new CustomLongswordWeaponItem(ToolMaterialsME.BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue())), true); public static final Item MORDOR_DAGGER = registerItemWithModel("mordor_dagger", (settings) -> new CustomDaggerWeaponItem(ToolMaterialsME.BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue())), false); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue())), false); public static final Item MORDOR_AXE = registerItemWithModel("mordor_axe", (settings) -> new CustomAxeWeaponItem(ToolMaterialsME.BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue())), true); public static final Item MORDOR_SPEAR = registerItemWithSpearModel("mordor_spear", (settings) -> new CustomSpearWeaponItem(ToolMaterialsME.BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_BOW = registerBigBowItem("mordor_bow", (settings) -> new CustomBowWeaponItem(RangedWeaponTypesME.BOW, settings), new Item.Settings()); public static final Item MORDOR_ELITE_CLEAVER = registerItemWithModel("mordor_elite_cleaver", (settings) -> new CustomSwordWeaponItem(ToolMaterialsME.NOBLE_BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue())), true); public static final Item MORDOR_ELITE_WARBLADE = registerItemWithModel("mordor_elite_warblade", (settings) -> new CustomLongswordWeaponItem(ToolMaterialsME.NOBLE_BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue())), true); public static final Item MORDOR_ELITE_DAGGER = registerItemWithModel("mordor_elite_dagger", (settings) -> new CustomDaggerWeaponItem(ToolMaterialsME.NOBLE_BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue())), false); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue())), false); public static final Item MORDOR_ELITE_AXE = registerItemWithModel("mordor_elite_axe", (settings) -> new CustomAxeWeaponItem(ToolMaterialsME.NOBLE_BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue())), true); public static final Item MORDOR_ELITE_SPEAR = registerItemWithSpearModel("mordor_elite_spear", (settings) -> new CustomSpearWeaponItem(ToolMaterialsME.NOBLE_BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_ELITE_LONGBOW = registerBigBowItem("mordor_elite_longbow", (settings) -> new CustomLongbowWeaponItem(RangedWeaponTypesME.NOBLE_LONGBOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item BLACK_NUMENOREAN_SWORD = registerItemWithModel("black_numenorean_sword", (settings) -> new CustomSwordWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue())), true); public static final Item BLACK_NUMENOREAN_LONGSWORD = registerItemWithModel("black_numenorean_longsword", (settings) -> new CustomLongswordWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue())), true); public static final Item BLACK_NUMENOREAN_DAGGER = registerItemWithModel("black_numenorean_dagger", (settings) -> new CustomDaggerWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue())), false); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue())), false); public static final Item BLACK_NUMENOREAN_AXE = registerItemWithModel("black_numenorean_axe", (settings) -> new CustomAxeWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue())), true); public static final Item BLACK_NUMENOREAN_SPEAR = registerItemWithSpearModel("black_numenorean_spear", (settings) -> new CustomSpearWeaponItem(ToolMaterialsME.NOBLE_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_WOODEN_SHIELD = registerShield("mordor_wooden_shield", (settings) -> new CustomShieldItem(ShieldTypesME.LIGHT_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_PAINTED_WOODEN_SHIELD = registerShield("mordor_painted_wooden_shield", (settings) -> new CustomShieldItem(ShieldTypesME.LIGHT_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_ROUND_SHIELD = registerShield("mordor_round_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_BLACK_ROUND_SHIELD = registerShield("mordor_black_round_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_PAINTED_ROUND_SHIELD = registerShield("mordor_painted_round_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_BRACED_SHIELD = registerShield("mordor_braced_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_BLACK_BRACED_SHIELD = registerShield("mordor_black_braced_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_PAINTED_BRACED_SHIELD = registerShield("mordor_painted_braced_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_LARGE_SHIELD = registerShield("mordor_large_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_BLACK_LARGE_SHIELD = registerShield("mordor_black_large_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_PAINTED_LARGE_SHIELD = registerShield("mordor_painted_large_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item GONDORIAN_CONVERTED_SHIELD = registerShield("gondorian_converted_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_HEAVY_SHIELD = registerShield("mordor_heavy_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item MORDOR_PAINTED_HEAVY_SHIELD = registerShield("mordor_painted_heavy_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item BLACK_NUMENOREAN_TOWER_SHIELD = registerShield("black_numenorean_tower_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); //region DOL GULDUR public static final Item DOL_GULDUR_MACHETE = registerItemWithModel("dol_guldur_machete", (settings) -> new CustomSwordWeaponItem(ToolMaterialsME.NOBLE_BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue())), true); public static final Item DOL_GULDUR_AXE = registerItemWithModel("dol_guldur_axe", (settings) -> new CustomAxeWeaponItem(ToolMaterialsME.NOBLE_BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue())), true); public static final Item DOL_GULDUR_PAVISE = registerShield("dol_guldur_pavise", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); public static final Item DOL_GULDUR_SHIELD = registerShield("dol_guldur_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MORDOR.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.MORDOR.getValue()))); //endregion //endregion //region ISENGARD public static final Item ISENGARD_ORC_CLEAVER = registerItemWithModel("isengard_orc_cleaver", (settings) -> new CustomSwordWeaponItem(ToolMaterialsME.BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue())), true); public static final Item ISENGARD_ORC_WARBLADE = registerItemWithModel("isengard_orc_warblade", (settings) -> new CustomLongswordWeaponItem(ToolMaterialsME.BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue())), true); public static final Item ISENGARD_ORC_DAGGER = registerItemWithModel("isengard_orc_dagger", (settings) -> new CustomDaggerWeaponItem(ToolMaterialsME.BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue())), false); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue())), false); public static final Item ISENGARD_ORC_AXE = registerItemWithModel("isengard_orc_axe", (settings) -> new CustomAxeWeaponItem(ToolMaterialsME.BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue())), true); public static final Item ISENGARD_ORC_SPEAR = registerItemWithSpearModel("isengard_orc_spear", (settings) -> new CustomSpearWeaponItem(ToolMaterialsME.BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_FALCHION = registerItemWithModel("uruk_hai_falchion", (settings) -> new CustomSwordWeaponItem(ToolMaterialsME.NOBLE_BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue())), true); public static final Item URUK_HAI_WARBLADE = registerItemWithModel("uruk_hai_warblade", (settings) -> new CustomLongswordWeaponItem(ToolMaterialsME.NOBLE_BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue())), true); public static final Item URUK_HAI_KNIFE = registerItemWithModel("uruk_hai_knife", (settings) -> new CustomDaggerWeaponItem(ToolMaterialsME.NOBLE_BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue())), false); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue())), false); public static final Item URUK_HAI_AXE = registerItemWithModel("uruk_hai_axe", (settings) -> new CustomAxeWeaponItem(ToolMaterialsME.NOBLE_BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue())), true); public static final Item URUK_HAI_SPEAR = registerItemWithSpearModel("uruk_hai_spear", (settings) -> new CustomSpearWeaponItem(ToolMaterialsME.NOBLE_BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_BOW = registerBigBowItem("uruk_hai_bow", (settings) -> new CustomBowWeaponItem(RangedWeaponTypesME.NOBLE_BOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_CROSSBOW = registerCrossbowItem("uruk_hai_crossbow", (settings) -> new CustomCrossbowWeaponItem(RangedWeaponTypesME.NOBLE_CROSSBOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_HEATER_SHIELD = registerShield("uruk_hai_heater_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_SHIELD = registerShield("uruk_hai_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_WHITE_HAND_SHIELD = registerShield("uruk_hai_white_hand_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_WHITE_PALMPRINT_SHIELD = registerShield("uruk_hai_white_palmprint_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_S_RUNE_SHIELD = registerShield("uruk_hai_s_rune_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); public static final Item URUK_HAI_SIEGE_SHIELD = registerShield("uruk_hai_siege_shield", (settings) -> new CustomSiegeShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.ISENGARD.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.ISENGARD.getValue()))); //endregion //region MISTIES @@ -827,133 +827,133 @@ public class WeaponItemsME { //region GUNDABAD public static final Item GUNDABAD_FALCHION = registerItemWithModel("gundabad_falchion", (settings) -> new CustomSwordWeaponItem(ToolMaterialsME.BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES.getValue())), true); public static final Item GUNDABAD_ELITE_CLEAVER = registerItemWithModel("gundabad_elite_cleaver", (settings) -> new CustomSwordWeaponItem(ToolMaterialsME.NOBLE_BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES.getValue())), true); public static final Item GUNDABAD_WARBLADE = registerItemWithModel("gundabad_warblade", (settings) -> new CustomLongswordWeaponItem(ToolMaterialsME.BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES.getValue())), true); public static final Item GUNDABAD_ELITE_SCIMITAR = registerItemWithModel("gundabad_elite_scimitar", (settings) -> new CustomLongswordWeaponItem(ToolMaterialsME.NOBLE_BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES.getValue())), true); public static final Item GUNDABAD_SHANK = registerItemWithModel("gundabad_shank", (settings) -> new CustomDaggerWeaponItem(ToolMaterialsME.BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue())), false); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES.getValue())), false); public static final Item GUNDABAD_ELITE_DAGGER = registerItemWithModel("gundabad_elite_dagger", (settings) -> new CustomDaggerWeaponItem(ToolMaterialsME.NOBLE_BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue())), false); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES.getValue())), false); public static final Item GUNDABAD_AXE = registerItemWithModel("gundabad_axe", (settings) -> new CustomAxeWeaponItem(ToolMaterialsME.BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES.getValue())), true); public static final Item GUNDABAD_ELITE_BATTLEAXE = registerItemWithModel("gundabad_elite_battleaxe", (settings) -> new CustomAxeWeaponItem(ToolMaterialsME.NOBLE_BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES.getValue())), true); public static final Item GUNDABAD_SPEAR = registerItemWithSpearModel("gundabad_spear", (settings) -> new CustomSpearWeaponItem(ToolMaterialsME.BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES.getValue()))); public static final Item GUNDABAD_ELITE_SPEAR = registerItemWithSpearModel("gundabad_elite_spear", (settings) -> new CustomSpearWeaponItem(ToolMaterialsME.NOBLE_BURZUM_STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES.getValue()))); public static final Item GUNDABAD_BOW = registerBigBowItem("gundabad_bow", (settings) -> new CustomBowWeaponItem(RangedWeaponTypesME.BOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES.getValue()))); public static final Item GUNDABAD_CROSSBOW = registerCrossbowItem("gundabad_crossbow", (settings) -> new CustomCrossbowWeaponItem(RangedWeaponTypesME.CROSSBOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES.getValue()))); public static final Item GUNDABAD_WOODEN_SHIELD = registerShield("gundabad_wooden_shield", (settings) -> new CustomShieldItem(ShieldTypesME.LIGHT_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES.getValue()))); public static final Item GUNDABAD_PAINTED_WOODEN_SHIELD = registerShield("gundabad_painted_wooden_shield", (settings) -> new CustomShieldItem(ShieldTypesME.LIGHT_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES.getValue()))); public static final Item GUNDABAD_GREAT_EYE_PAINTED_WOODEN_SHIELD = registerShield("gundabad_great_eye_painted_wooden_shield", (settings) -> new CustomShieldItem(ShieldTypesME.LIGHT_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES.getValue()))); public static final Item GUNDABAD_PEAKS_PAINTED_WOODEN_SHIELD = registerShield("gundabad_peaks_painted_wooden_shield", (settings) -> new CustomShieldItem(ShieldTypesME.LIGHT_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES.getValue()))); public static final Item GUNDABAD_REINFORCED_SHIELD = registerShield("gundabad_reinforced_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES.getValue()))); public static final Item GUNDABAD_HEAVY_SHIELD = registerShield("gundabad_heavy_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES.getValue()))); //endregion //endregion //region MORIA GOBS public static final Item MORIA_GOBLIN_FALCHION = registerItemWithModel("moria_goblin_falchion", (settings) -> new CustomSwordWeaponItem(ToolMaterialsME.STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue())), true); public static final Item MORIA_GOBLIN_HOOKBLADE = registerItemWithModel("moria_goblin_hookblade", (settings) -> new CustomLongswordWeaponItem(ToolMaterialsME.STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue())), true); public static final Item MORIA_GOBLIN_SHANK = registerItemWithModel("moria_goblin_shank", (settings) -> new CustomDaggerWeaponItem(ToolMaterialsME.STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue())), false); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue())), false); public static final Item MORIA_GOBLIN_HOOKAXE = registerItemWithModel("moria_goblin_hookaxe", (settings) -> new CustomAxeWeaponItem(ToolMaterialsME.STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue())), true); public static final Item MORIA_GOBLIN_SPEAR = registerItemWithSpearModel("moria_goblin_spear", (settings) -> new CustomSpearWeaponItem(ToolMaterialsME.STEEL, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item MORIA_GOBLIN_BOW = registerBigBowItem("moria_goblin_bow", (settings) -> new CustomBowWeaponItem(RangedWeaponTypesME.BOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item MORIA_GOBLINS_BUCKLER_SHIELD = registerShield("moria_goblins_buckler_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item MORIA_GOBLINS_HEAVY_SHIELD = registerShield("moria_goblins_heavy_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); //endregion //region GOBLIN TOWN public static final Item GOBLIN_TOWN_FALCHION = registerItemWithModel("goblin_town_falchion", (settings) -> new CustomSwordWeaponItem(ToolMaterialsME.CRUDE, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue())), true); public static final Item GOBLIN_TOWN_SCIMITAR = registerItemWithModel("goblin_town_scimitar", (settings) -> new CustomLongswordWeaponItem(ToolMaterialsME.CRUDE, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue())), true); public static final Item GOBLIN_TOWN_SHANK = registerItemWithModel("goblin_town_shank", (settings) -> new CustomDaggerWeaponItem(ToolMaterialsME.CRUDE, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue())), false); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue())), false); public static final Item GOBLIN_TOWN_AXE = registerItemWithModel("goblin_town_axe", (settings) -> new CustomAxeWeaponItem(ToolMaterialsME.CRUDE, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue())), true); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue())), true); public static final Item GOBLIN_TOWN_SPEAR = registerItemWithSpearModel("goblin_town_spear", (settings) -> new CustomSpearWeaponItem(ToolMaterialsME.CRUDE, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GOBLIN_TOWN_BOW = registerBigBowItem("goblin_town_bow", (settings) -> new CustomBowWeaponItem(RangedWeaponTypesME.BOW, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GOBLIN_TOWN_BONE_SHIELD = registerShield("goblin_town_bone_shield", (settings) -> new CustomShieldItem(ShieldTypesME.LIGHT_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GOBLIN_TOWN_WOODEN_SHIELD = registerShield("goblin_town_wooden_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GOBLIN_BONE_TOWN_WOODEN_SHIELD = registerShield("goblin_town_bone_wooden_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GOBLIN_LEATHER_TOWN_WOODEN_SHIELD = registerShield("goblin_town_leather_wooden_shield", (settings) -> new CustomShieldItem(ShieldTypesME.MEDIUM_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); public static final Item GOBLIN_LEATHER_HEAVY_SHIELD = registerShield("goblin_town_heavy_shield", (settings) -> new CustomShieldItem(ShieldTypesME.HEAVY_SHIELD, settings), new Item.Settings() - .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionsME.MISTY_MOUNTAINS_GOBLINS.getValue()))); + .component(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()))); //endregion //region TROLL WEAPONS @@ -1119,7 +1119,7 @@ private static Item registerItem(Item item, String name){ } else if (item instanceof CustomSpearWeaponItem){ WeaponEnchants.sharpWeapons.add(item); } - RegistryAliases.aliases.add(new RegistryAliases.Alias(Registries.ITEM, name)); + RegistryAliasesME.aliases.add(new RegistryAliasesME.Alias(Registries.ITEM, name)); return Registry.register(Registries.ITEM, ModBlocks.keyOfItem(name), item); } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/item/dataComponents/FactionDataComponent.java b/middle-earth/src/main/java/net/sevenstars/middleearth/item/dataComponents/FactionDataComponent.java index 30aee9fbe8..612a20f7f5 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/item/dataComponents/FactionDataComponent.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/item/dataComponents/FactionDataComponent.java @@ -2,7 +2,6 @@ import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import net.minecraft.client.MinecraftClient; import net.minecraft.component.ComponentsAccess; import net.minecraft.item.Item; import net.minecraft.item.tooltip.TooltipAppender; @@ -15,11 +14,10 @@ import net.minecraft.util.Identifier; import net.sevenstars.middleearth.MiddleEarth; import net.sevenstars.middleearth.exceptions.FactionIdentifierException; -import net.sevenstars.middleearth.resources.FactionsME; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; import net.sevenstars.middleearth.resources.datas.factions.Faction; import net.sevenstars.middleearth.utils.ModColors; -import java.util.Objects; import java.util.function.Consumer; public record FactionDataComponent(Identifier factionId) implements TooltipAppender { @@ -35,7 +33,7 @@ public record FactionDataComponent(Identifier factionId) implements TooltipAppen @Override public void appendTooltip(Item.TooltipContext context, Consumer textConsumer, TooltipType type, ComponentsAccess components) { try{ - Faction faction = context.getRegistryLookup().getOrThrow(FactionsME.KEY).getOrThrow(RegistryKey.of(FactionsME.KEY, this.factionId)).value(); + Faction faction = context.getRegistryLookup().getOrThrow(DynamicRegistriesME.FACTION).getOrThrow(RegistryKey.of(DynamicRegistriesME.FACTION, this.factionId)).value(); Faction parent = faction.getParentFaction(context.getRegistryLookup()); if (parent != null){ appendFaction(textConsumer, parent); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/item/dataComponents/RaceDataComponent.java b/middle-earth/src/main/java/net/sevenstars/middleearth/item/dataComponents/RaceDataComponent.java index b873359b98..df7acc4b83 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/item/dataComponents/RaceDataComponent.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/item/dataComponents/RaceDataComponent.java @@ -13,7 +13,7 @@ import net.minecraft.util.Formatting; import net.minecraft.util.Identifier; import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.resources.RacesME; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; import net.sevenstars.middleearth.resources.datas.races.Race; import java.util.function.Consumer; @@ -30,7 +30,7 @@ public record RaceDataComponent(Identifier raceId) implements TooltipAppender { @Override public void appendTooltip(Item.TooltipContext context, Consumer textConsumer, TooltipType type, ComponentsAccess components) { - Race race = context.getRegistryLookup().getOrThrow(RacesME.KEY).getOrThrow(RegistryKey.of(RacesME.KEY, this.raceId)).value(); + Race race = context.getRegistryLookup().getOrThrow(DynamicRegistriesME.RACE).getOrThrow(RegistryKey.of(DynamicRegistriesME.RACE, this.raceId)).value(); textConsumer.accept(Text.translatable("tooltip.%s.race".formatted(MiddleEarth.MOD_ID)).formatted(Formatting.DARK_RED) .append(Text.translatable(race.getId().toTranslationKey("race")).formatted(Formatting.WHITE))); } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/item/items/OrcishFoodItem.java b/middle-earth/src/main/java/net/sevenstars/middleearth/item/items/OrcishFoodItem.java index d77b51a96a..2f74a95905 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/item/items/OrcishFoodItem.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/item/items/OrcishFoodItem.java @@ -1,6 +1,6 @@ package net.sevenstars.middleearth.item.items; -import net.sevenstars.middleearth.resources.datas.RaceType; +import net.sevenstars.middleearth.resources.datas.common.RaceType; import net.sevenstars.middleearth.resources.datas.races.RaceUtil; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.effect.StatusEffectInstance; diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/item/items/PipeItem.java b/middle-earth/src/main/java/net/sevenstars/middleearth/item/items/PipeItem.java index 75f2780926..40049f86a1 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/item/items/PipeItem.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/item/items/PipeItem.java @@ -1,10 +1,8 @@ package net.sevenstars.middleearth.item.items; -import net.minecraft.entity.effect.StatusEffectInstance; -import net.minecraft.entity.effect.StatusEffects; import net.minecraft.item.consume.UseAction; import net.minecraft.util.ActionResult; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.sevenstars.middleearth.entity.projectile.smoke.SmokeRingProjectileEntity; import net.sevenstars.middleearth.item.ResourceItemsME; import net.sevenstars.middleearth.sound.ModSounds; @@ -172,7 +170,7 @@ public void spawnSmokeRing(LivingEntity user, World world) { if (world.isClient()) return; - SmokeRingProjectileEntity smoke = new SmokeRingProjectileEntity(ModEntities.SMOKE_RING_PROJECTILE, + SmokeRingProjectileEntity smoke = new SmokeRingProjectileEntity(EntitiesME.SMOKE_RING_PROJECTILE, world, user); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/item/utils/ItemGroupsME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/item/utils/ItemGroupsME.java index 484cfd7f50..147bc7a2dd 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/item/utils/ItemGroupsME.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/item/utils/ItemGroupsME.java @@ -24,9 +24,8 @@ import net.sevenstars.middleearth.item.*; import net.sevenstars.middleearth.item.dataComponents.FactionDataComponent; import net.sevenstars.middleearth.item.dataComponents.RaceDataComponent; -import net.sevenstars.middleearth.resources.NpcME; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; import net.sevenstars.middleearth.resources.datas.npcs.NpcData; -import net.sevenstars.middleearth.utils.IdentifierUtil; import java.util.Comparator; import java.util.LinkedList; @@ -43,7 +42,7 @@ private static void addNpcEggs(ItemGroup.Entries entries, RegistryWrapper.Wrappe ItemStack itemStack = new ItemStack(EggItemsME.NPC_SPAWN_EGG); NbtCompound compound = new NbtCompound(); NpcData npcData = reference.value(); - compound.putString("id", IdentifierUtil.create("npc").toString()); + compound.putString("id", MiddleEarth.of("npc").toString()); compound.putString("NpcDataId", npcData.getId().toString()); itemStack.set(DataComponentTypes.ENTITY_DATA, NbtComponent.of(compound)); itemStack.set(DataComponentTypesME.FACTION_DATA, new FactionDataComponent(npcData.getFaction())); @@ -177,7 +176,7 @@ private static void addNpcEggs(ItemGroup.Entries entries, RegistryWrapper.Wrappe for (ItemStack item : SPAWN_EGGS_CONTENTS) { entries.add(item); }; - displayContext.lookup().getOptional(NpcME.KEY) + displayContext.lookup().getOptional(DynamicRegistriesME.NPC) .ifPresent(registryWrapper -> addNpcEggs( entries, displayContext.lookup(), diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/mixin/BlockMixin.java b/middle-earth/src/main/java/net/sevenstars/middleearth/mixin/BlockMixin.java index aa448ec7ce..dcd99905c3 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/mixin/BlockMixin.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/mixin/BlockMixin.java @@ -2,7 +2,7 @@ import net.minecraft.server.world.ServerWorld; import net.sevenstars.middleearth.block.registration.ModDecorativeBlocks; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.minecraft.block.Block; import net.minecraft.block.Blocks; import net.minecraft.entity.FallingBlockEntity; @@ -32,7 +32,7 @@ private void onDestroyedByExplosion(ServerWorld world, BlockPos pos, Explosion e //if(!explosion.shouldDestroy()) return; Block block = this.asBlock(); - if(explosion.getEntity() == null || explosion.getEntity().getType() == ModEntities.FIRE_OF_ORTHANC) { + if(explosion.getEntity() == null || explosion.getEntity().getType() == EntitiesME.FIRE_OF_ORTHANC) { if(block != Blocks.TNT && block != ModDecorativeBlocks.FIRE_OF_ORTHANC) { if(Math.random() < RANDOM_FLYING_BLOCK) { float distance = (float) pos.getSquaredDistance(explosion.getPosition()); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/mixin/client/BakedModelManagerMixin.java b/middle-earth/src/main/java/net/sevenstars/middleearth/mixin/client/BakedModelManagerMixin.java index c1b22164db..1e4912d596 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/mixin/client/BakedModelManagerMixin.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/mixin/client/BakedModelManagerMixin.java @@ -6,7 +6,7 @@ import net.minecraft.util.Identifier; import net.sevenstars.middleearth.MiddleEarth; import net.sevenstars.middleearth.client.ModTexturedRenderLayers; -import net.sevenstars.middleearth.resources.AtlasesME; +import net.sevenstars.middleearth.registries.AtlasesME; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mutable; @@ -33,7 +33,7 @@ private static void addNewAtlas(TextureManager textureManager, BlockColors color map.put(ModTexturedRenderLayers.CHARACTER_SKIN_ATLAS_TEXTURE, AtlasesME.CHARACTER_SKINS); map.put(ModTexturedRenderLayers.CHARACTER_EYES_ATLAS_TEXTURE, AtlasesME.CHARACTER_EYES); map.put(ModTexturedRenderLayers.CHARACTER_HAIRS_ATLAS_TEXTURE, AtlasesME.CHARACTER_HAIRS); - map.put(ModTexturedRenderLayers.CHARACTER_CLOTHINGS_ATLAS_TEXTURE, AtlasesME.CHARACTER_CLOTHINGS); + map.put(ModTexturedRenderLayers.CHARACTER_CLOTHES_ATLAS_TEXTURE, AtlasesME.CHARACTER_CLOTHES); /* * Load custom sprites' atlas. Used for direct render animations. diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/network/packets/C2S/PacketOnboardingRequest.java b/middle-earth/src/main/java/net/sevenstars/middleearth/network/packets/C2S/PacketOnboardingRequest.java index 4de13eed30..b89778bbb2 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/network/packets/C2S/PacketOnboardingRequest.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/network/packets/C2S/PacketOnboardingRequest.java @@ -6,7 +6,6 @@ import net.sevenstars.middleearth.network.contexts.ServerPacketContext; import net.sevenstars.middleearth.network.packets.ClientToServerPacket; import net.sevenstars.middleearth.network.packets.S2C.PacketOnboardingResult; -import net.sevenstars.middleearth.resources.StateSaverAndLoader; import net.minecraft.network.RegistryByteBuf; import net.minecraft.network.codec.PacketCodec; import net.minecraft.server.network.ServerPlayerEntity; diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/network/packets/C2S/PacketSetRace.java b/middle-earth/src/main/java/net/sevenstars/middleearth/network/packets/C2S/PacketSetRace.java index bae4ce5e7d..4d78e71d48 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/network/packets/C2S/PacketSetRace.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/network/packets/C2S/PacketSetRace.java @@ -5,7 +5,7 @@ import net.sevenstars.middleearth.network.packets.ClientToServerPacket; import net.sevenstars.middleearth.resources.datas.races.RaceLookup; import net.sevenstars.middleearth.resources.datas.races.RaceUtil; -import net.sevenstars.middleearth.utils.IdentifierUtil; +import net.sevenstars.api.utils.IdentifierUtil; import net.minecraft.network.RegistryByteBuf; import net.minecraft.network.codec.PacketCodec; import net.minecraft.network.codec.PacketCodecs; @@ -43,7 +43,7 @@ public void process(ServerPacketContext context) { MinecraftServer server = context.player().getServer(); server.execute(() -> { try{ - RaceUtil.updateRace(context.player(), RaceLookup.getRace(context.player().getWorld(), IdentifierUtil.getIdentifierFromString(race)), true); + RaceUtil.updateRace(context.player(), RaceLookup.getRace(context.player().getWorld(), MiddleEarth.fetchId(race)), true); } catch (Exception e){ MiddleEarth.LOGGER.logError("PacketSetRace::Tried setting race for player.", e); } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/network/packets/C2S/PacketSetSpawnData.java b/middle-earth/src/main/java/net/sevenstars/middleearth/network/packets/C2S/PacketSetSpawnData.java index 633d702bcd..2a3237f555 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/network/packets/C2S/PacketSetSpawnData.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/network/packets/C2S/PacketSetSpawnData.java @@ -4,8 +4,6 @@ import net.sevenstars.middleearth.MiddleEarth; import net.sevenstars.middleearth.network.contexts.ServerPacketContext; import net.sevenstars.middleearth.network.packets.ClientToServerPacket; -import net.sevenstars.middleearth.resources.StateSaverAndLoader; -import net.sevenstars.middleearth.resources.persistent_datas.PlayerData; import net.minecraft.network.RegistryByteBuf; import net.minecraft.network.codec.PacketCodec; import net.minecraft.network.codec.PacketCodecs; diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/AtlasesME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/AtlasesME.java similarity index 57% rename from middle-earth/src/main/java/net/sevenstars/middleearth/resources/AtlasesME.java rename to middle-earth/src/main/java/net/sevenstars/middleearth/registries/AtlasesME.java index 663e0dbbe0..ca398a2d36 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/AtlasesME.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/AtlasesME.java @@ -1,21 +1,22 @@ -package net.sevenstars.middleearth.resources; +package net.sevenstars.middleearth.registries; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; +import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; import net.minecraft.client.MinecraftClient; import net.minecraft.client.texture.SpriteAtlasTexture; import net.minecraft.util.Identifier; import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.utils.IdentifierUtil; +import net.sevenstars.middleearth.datageneration.providers.dynamic.CharacterAtlasTexturesProvider; /** * Middle-earth mod atlases
*/ public class AtlasesME { - public static final Identifier CHARACTER_SKINS = IdentifierUtil.create("character_skins"); - public static final Identifier CHARACTER_HAIRS = IdentifierUtil.create("character_hairs"); - public static final Identifier CHARACTER_EYES = IdentifierUtil.create("character_eyes"); - public static final Identifier CHARACTER_CLOTHINGS = IdentifierUtil.create("character_clothings"); + public static final Identifier CHARACTER_SKINS = MiddleEarth.of("character_skins"); + public static final Identifier CHARACTER_HAIRS = MiddleEarth.of("character_hairs"); + public static final Identifier CHARACTER_EYES = MiddleEarth.of("character_eyes"); + public static final Identifier CHARACTER_CLOTHES = MiddleEarth.of("character_clothes"); public static Identifier prefixAtlas(Identifier sprite, Identifier atlas) { return sprite.withPrefixedPath(String.format("%s/", atlas.getPath())); @@ -30,4 +31,8 @@ public static SpriteAtlasTexture getAtlasFromPath(Identifier atlasPath){ MinecraftClient client = MinecraftClient.getInstance(); return client.getBakedModelManager().getAtlas(atlasPath); } + + public static void addProviders(FabricDataGenerator.Pack pack) { + pack.addProvider(CharacterAtlasTexturesProvider::new); + } } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/CharacterClothesRegistryME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/CharacterClothesRegistryME.java new file mode 100644 index 0000000000..b1c25a0375 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/CharacterClothesRegistryME.java @@ -0,0 +1,42 @@ +package net.sevenstars.middleearth.registries; + +import net.minecraft.util.Identifier; +import net.sevenstars.middleearth.MiddleEarth; + +public class CharacterClothesRegistryME { + private final static String base = "character_clothes/base/"; + private final static String over = "character_clothes/over/"; + private final static String extra = "character_clothes/extra/"; + + public record Base(){ + public final static Identifier PANTS_BEIGE = MiddleEarth.of(base + "pants_beige"); + public final static Identifier PANTS_BROWN = MiddleEarth.of(base + "pants_brown"); + public final static Identifier PANTS_DARK_BROWN = MiddleEarth.of(base + "pants_dark_brown"); + + public final static Identifier THONG_BEIGE = MiddleEarth.of(base + "thong_beige"); + public final static Identifier THONG_BROWN = MiddleEarth.of(base + "thong_brown"); + public final static Identifier THONG_DARK_BROWN = MiddleEarth.of(base + "thong_dark_brown"); + } + + public record Over(){ + public final static Identifier SHIRT_BEIGE = MiddleEarth.of(over + "shirt_beige"); + public final static Identifier SHIRT_BURGUNDY = MiddleEarth.of(over + "shirt_burgundy"); + + public final static Identifier DRESS_BURGUNDY_AND_WHITE = MiddleEarth.of(over + "dress_burgundy_and_white"); + } + + public record Extra(){ + public final static Identifier SCARF_BROWN = MiddleEarth.of(extra + "scarf_brown"); + public final static Identifier SCARF_DARK_BROWN = MiddleEarth.of(extra + "scarf_dark_brown"); + } + + public static Identifier RemovePath(Identifier identifier){ + String val = identifier.toString(); + + val = val.replace(base, ""); + val = val.replace(over, ""); + val = val.replace(extra, ""); + + return Identifier.of(val); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/CharacterMaterialsRegistryME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/CharacterMaterialsRegistryME.java new file mode 100644 index 0000000000..864efbf0d8 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/CharacterMaterialsRegistryME.java @@ -0,0 +1,248 @@ +package net.sevenstars.middleearth.registries; + +import net.minecraft.registry.Registerable; +import net.minecraft.registry.Registry; +import net.minecraft.registry.RegistryKey; +import net.minecraft.util.Identifier; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.resources.datas.common.CharacterMaterialTypes; +import net.sevenstars.middleearth.resources.datas.texture_presets.CharacterTextureMaterial; + +/** + * Middle-earth mod npc texture materials registry
+ * Used to register the different palette colors
+ * Datadriven content, do not use during runtime! + *
+ */ +public class CharacterMaterialsRegistryME { + public record Skin(){ + public final static RegistryKey BEIGE = of("beige", CharacterMaterialTypes.SKIN); + public final static RegistryKey BROWN = of("brown", CharacterMaterialTypes.SKIN); + public final static RegistryKey DARK_BEIGE = of("dark_beige", CharacterMaterialTypes.SKIN); + public final static RegistryKey DARK_GREEN = of("dark_green", CharacterMaterialTypes.SKIN); + public final static RegistryKey DARK_PINK = of("dark_pink", CharacterMaterialTypes.SKIN); + public final static RegistryKey GREEN = of("green", CharacterMaterialTypes.SKIN); + public final static RegistryKey GREY = of("grey", CharacterMaterialTypes.SKIN); + public final static RegistryKey LIGHT_GREY = of("light_grey", CharacterMaterialTypes.SKIN); + public final static RegistryKey MURKY_GREEN = of("murky_green", CharacterMaterialTypes.SKIN); + public final static RegistryKey OLIVE = of("olive", CharacterMaterialTypes.SKIN); + public final static RegistryKey PALE = of("pale", CharacterMaterialTypes.SKIN); + public final static RegistryKey PALE_GREEN = of("pale_green", CharacterMaterialTypes.SKIN); + public final static RegistryKey PALE_WHITE = of("pale_white", CharacterMaterialTypes.SKIN); + public final static RegistryKey PINK = of("pink", CharacterMaterialTypes.SKIN); + public final static RegistryKey RED = of("red", CharacterMaterialTypes.SKIN); + public final static RegistryKey RUST = of("rust", CharacterMaterialTypes.SKIN); + public final static RegistryKey SANDY_GREEN = of("sandy_green", CharacterMaterialTypes.SKIN); + public final static RegistryKey SLIGHT_BROWN = of("slight_brown", CharacterMaterialTypes.SKIN); + public final static RegistryKey SWAMPY_GREEN = of("swampy_green", CharacterMaterialTypes.SKIN); + public final static RegistryKey TAN = of("tan", CharacterMaterialTypes.SKIN); + public final static RegistryKey TAN_DESATURATED = of("tan_desaturated", CharacterMaterialTypes.SKIN); + public final static RegistryKey WINE = of("wine", CharacterMaterialTypes.SKIN); + public final static RegistryKey YELLOWISH_GREEN = of("yellowish_green", CharacterMaterialTypes.SKIN); + } + + public record Eye() { + public final static RegistryKey BLACK = of("black", CharacterMaterialTypes.EYE); + public final static RegistryKey BLUE = of("blue", CharacterMaterialTypes.EYE); + public final static RegistryKey BROWN = of("brown", CharacterMaterialTypes.EYE); + public final static RegistryKey DARK_GREEN = of("dark_green", CharacterMaterialTypes.EYE); + public final static RegistryKey DEEP_BLUE = of("deep_blue", CharacterMaterialTypes.EYE); + public final static RegistryKey GREEN = of("green", CharacterMaterialTypes.EYE); + public final static RegistryKey ICE = of("ice", CharacterMaterialTypes.EYE); + public final static RegistryKey NAVY = of("navy", CharacterMaterialTypes.EYE); + public final static RegistryKey PALE = of("pale", CharacterMaterialTypes.EYE); + public final static RegistryKey RED = of("red", CharacterMaterialTypes.EYE); + public final static RegistryKey YELLOW = of("yellow", CharacterMaterialTypes.EYE); + } + public record Hair() { + public final static RegistryKey BLACK_ALMANDINE = of("black_and_almandine", CharacterMaterialTypes.HAIR); + public final static RegistryKey BLACK_BEADS = of("black_and_beads", CharacterMaterialTypes.HAIR); + public final static RegistryKey BLACK_COPPER = of("black_and_copper", CharacterMaterialTypes.HAIR); + public final static RegistryKey BLACK_GOLD = of("black_and_gold", CharacterMaterialTypes.HAIR); + public final static RegistryKey BLACK_SILVER = of("black_and_silver", CharacterMaterialTypes.HAIR); + public final static RegistryKey COLD_BLACK_ALMANDINE = of("cold_black_and_almandine", CharacterMaterialTypes.HAIR); + public final static RegistryKey COLD_BLACK_BEADS = of("cold_black_and_beads", CharacterMaterialTypes.HAIR); + public final static RegistryKey COLD_BLACK_COPPER = of("cold_black_and_copper", CharacterMaterialTypes.HAIR); + public final static RegistryKey COLD_BLACK_GOLD = of("cold_black_and_gold", CharacterMaterialTypes.HAIR); + public final static RegistryKey COLD_BLACK_SILVER = of("cold_black_and_silver", CharacterMaterialTypes.HAIR); + public final static RegistryKey BROWN_ALMANDINE = of("brown_and_almandine", CharacterMaterialTypes.HAIR); + public final static RegistryKey BROWN_BEADS = of("brown_and_beads", CharacterMaterialTypes.HAIR); + public final static RegistryKey BROWN_COPPER = of("brown_and_copper", CharacterMaterialTypes.HAIR); + public final static RegistryKey BROWN_GOLD = of("brown_and_gold", CharacterMaterialTypes.HAIR); + public final static RegistryKey BROWN_SILVER = of("brown_and_silver", CharacterMaterialTypes.HAIR); + public final static RegistryKey DARK_BROWN_ALMANDINE = of("dark_brown_and_almandine", CharacterMaterialTypes.HAIR); + public final static RegistryKey DARK_BROWN_BEADS = of("dark_brown_and_beads", CharacterMaterialTypes.HAIR); + public final static RegistryKey DARK_BROWN_COPPER = of("dark_brown_and_copper", CharacterMaterialTypes.HAIR); + public final static RegistryKey DARK_BROWN_GOLD = of("dark_brown_and_gold", CharacterMaterialTypes.HAIR); + public final static RegistryKey DARK_BROWN_SILVER = of("dark_brown_and_silver", CharacterMaterialTypes.HAIR); + public final static RegistryKey BLONDE_ALMANDINE = of("blonde_and_almandine", CharacterMaterialTypes.HAIR); + public final static RegistryKey BLONDE_BEADS = of("blonde_and_beads", CharacterMaterialTypes.HAIR); + public final static RegistryKey BLONDE_COPPER = of("blonde_and_copper", CharacterMaterialTypes.HAIR); + public final static RegistryKey BLONDE_GOLD = of("blonde_and_gold", CharacterMaterialTypes.HAIR); + public final static RegistryKey BLONDE_SILVER = of("blonde_and_silver", CharacterMaterialTypes.HAIR); + public final static RegistryKey DIRTY_BLONDE_ALMANDINE = of("dirty_blonde_and_almandine", CharacterMaterialTypes.HAIR); + public final static RegistryKey DIRTY_BLONDE_BEADS = of("dirty_blonde_and_beads", CharacterMaterialTypes.HAIR); + public final static RegistryKey DIRTY_BLONDE_COPPER = of("dirty_blonde_and_copper", CharacterMaterialTypes.HAIR); + public final static RegistryKey DIRTY_BLONDE_GOLD = of("dirty_blonde_and_gold", CharacterMaterialTypes.HAIR); + public final static RegistryKey DIRTY_BLONDE_SILVER = of("dirty_blonde_and_silver", CharacterMaterialTypes.HAIR); + public final static RegistryKey DIRTY_BROWN_ALMANDINE = of("dirty_brown_and_almandine", CharacterMaterialTypes.HAIR); + public final static RegistryKey DIRTY_BROWN_BEADS = of("dirty_brown_and_beads", CharacterMaterialTypes.HAIR); + public final static RegistryKey DIRTY_BROWN_COPPER = of("dirty_brown_and_copper", CharacterMaterialTypes.HAIR); + public final static RegistryKey DIRTY_BROWN_GOLD = of("dirty_brown_and_gold", CharacterMaterialTypes.HAIR); + public final static RegistryKey DIRTY_BROWN_SILVER = of("dirty_brown_and_silver", CharacterMaterialTypes.HAIR); + public final static RegistryKey GREASY_ALMANDINE = of("greasy_and_almandine", CharacterMaterialTypes.HAIR); + public final static RegistryKey GREASY_BEADS = of("greasy_and_beads", CharacterMaterialTypes.HAIR); + public final static RegistryKey GREASY_COPPER = of("greasy_and_copper", CharacterMaterialTypes.HAIR); + public final static RegistryKey GREASY_GOLD = of("greasy_and_gold", CharacterMaterialTypes.HAIR); + public final static RegistryKey GREASY_SILVER = of("greasy_and_silver", CharacterMaterialTypes.HAIR); + public final static RegistryKey STRAW_ALMANDINE = of("straw_and_almandine", CharacterMaterialTypes.HAIR); + public final static RegistryKey STRAW_BEADS = of("straw_and_beads", CharacterMaterialTypes.HAIR); + public final static RegistryKey STRAW_COPPER = of("straw_and_copper", CharacterMaterialTypes.HAIR); + public final static RegistryKey STRAW_GOLD = of("straw_and_gold", CharacterMaterialTypes.HAIR); + public final static RegistryKey STRAW_SILVER = of("straw_and_silver", CharacterMaterialTypes.HAIR); + public final static RegistryKey WHITE_ALMANDINE = of("white_and_almandine", CharacterMaterialTypes.HAIR); + public final static RegistryKey WHITE_BEADS = of("white_and_beads", CharacterMaterialTypes.HAIR); + public final static RegistryKey WHITE_COPPER = of("white_and_copper", CharacterMaterialTypes.HAIR); + public final static RegistryKey WHITE_GOLD = of("white_and_gold", CharacterMaterialTypes.HAIR); + public final static RegistryKey WHITE_SILVER = of("white_and_silver", CharacterMaterialTypes.HAIR); + public final static RegistryKey GRAY_ALMANDINE = of("gray_and_almandine", CharacterMaterialTypes.HAIR); + public final static RegistryKey GRAY_BEADS = of("gray_and_beads", CharacterMaterialTypes.HAIR); + public final static RegistryKey GRAY_COPPER = of("gray_and_copper", CharacterMaterialTypes.HAIR); + public final static RegistryKey GRAY_GOLD = of("gray_and_gold", CharacterMaterialTypes.HAIR); + public final static RegistryKey GRAY_SILVER = of("gray_and_silver", CharacterMaterialTypes.HAIR); + public final static RegistryKey GINGER_ALMANDINE = of("ginger_and_almandine", CharacterMaterialTypes.HAIR); + public final static RegistryKey GINGER_BEADS = of("ginger_and_beads", CharacterMaterialTypes.HAIR); + public final static RegistryKey GINGER_COPPER = of("ginger_and_copper", CharacterMaterialTypes.HAIR); + public final static RegistryKey GINGER_GOLD = of("ginger_and_gold", CharacterMaterialTypes.HAIR); + public final static RegistryKey GINGER_SILVER = of("ginger_and_silver", CharacterMaterialTypes.HAIR); + } + + public static void bootstrapSkins(Registerable registry) { + register(registry, Skin.BEIGE, CharacterMaterialTypes.SKIN); + register(registry, Skin.BROWN, CharacterMaterialTypes.SKIN); + register(registry, Skin.DARK_BEIGE, CharacterMaterialTypes.SKIN); + register(registry, Skin.DARK_GREEN, CharacterMaterialTypes.SKIN); + register(registry, Skin.DARK_PINK, CharacterMaterialTypes.SKIN); + register(registry, Skin.GREEN, CharacterMaterialTypes.SKIN); + register(registry, Skin.GREY, CharacterMaterialTypes.SKIN); + register(registry, Skin.LIGHT_GREY, CharacterMaterialTypes.SKIN); + register(registry, Skin.MURKY_GREEN, CharacterMaterialTypes.SKIN); + register(registry, Skin.OLIVE, CharacterMaterialTypes.SKIN); + register(registry, Skin.PALE, CharacterMaterialTypes.SKIN); + register(registry, Skin.PALE_GREEN, CharacterMaterialTypes.SKIN); + register(registry, Skin.PALE_WHITE, CharacterMaterialTypes.SKIN); + register(registry, Skin.PINK, CharacterMaterialTypes.SKIN); + register(registry, Skin.RED, CharacterMaterialTypes.SKIN); + register(registry, Skin.RUST, CharacterMaterialTypes.SKIN); + register(registry, Skin.SANDY_GREEN, CharacterMaterialTypes.SKIN); + register(registry, Skin.SLIGHT_BROWN, CharacterMaterialTypes.SKIN); + register(registry, Skin.SWAMPY_GREEN, CharacterMaterialTypes.SKIN); + register(registry, Skin.TAN, CharacterMaterialTypes.SKIN); + register(registry, Skin.TAN_DESATURATED, CharacterMaterialTypes.SKIN); + register(registry, Skin.WINE, CharacterMaterialTypes.SKIN); + register(registry, Skin.YELLOWISH_GREEN, CharacterMaterialTypes.SKIN); + } + + public static void bootstrapEyes(Registerable registry) { + register(registry, Eye.BLACK, CharacterMaterialTypes.EYE); + register(registry, Eye.BLUE, CharacterMaterialTypes.EYE); + register(registry, Eye.BROWN, CharacterMaterialTypes.EYE); + register(registry, Eye.DARK_GREEN, CharacterMaterialTypes.EYE); + register(registry, Eye.DEEP_BLUE, CharacterMaterialTypes.EYE); + register(registry, Eye.GREEN, CharacterMaterialTypes.EYE); + register(registry, Eye.ICE, CharacterMaterialTypes.EYE); + register(registry, Eye.NAVY, CharacterMaterialTypes.EYE); + register(registry, Eye.PALE, CharacterMaterialTypes.EYE); + register(registry, Eye.RED, CharacterMaterialTypes.EYE); + register(registry, Eye.YELLOW, CharacterMaterialTypes.EYE); + } + public static void bootstrapHairs(Registerable registry) { + register(registry, Hair.BLACK_GOLD, CharacterMaterialTypes.HAIR); + register(registry, Hair.COLD_BLACK_GOLD, CharacterMaterialTypes.HAIR); + register(registry, Hair.BROWN_GOLD, CharacterMaterialTypes.HAIR); + register(registry, Hair.DARK_BROWN_GOLD, CharacterMaterialTypes.HAIR); + register(registry, Hair.BLONDE_GOLD, CharacterMaterialTypes.HAIR); + register(registry, Hair.DIRTY_BLONDE_GOLD, CharacterMaterialTypes.HAIR); + register(registry, Hair.DIRTY_BROWN_GOLD, CharacterMaterialTypes.HAIR); + register(registry, Hair.GREASY_GOLD, CharacterMaterialTypes.HAIR); + register(registry, Hair.STRAW_GOLD, CharacterMaterialTypes.HAIR); + register(registry, Hair.GINGER_GOLD, CharacterMaterialTypes.HAIR); + register(registry, Hair.WHITE_GOLD, CharacterMaterialTypes.HAIR); + register(registry, Hair.GRAY_GOLD, CharacterMaterialTypes.HAIR); + + register(registry, Hair.BLACK_BEADS, CharacterMaterialTypes.HAIR); + register(registry, Hair.COLD_BLACK_BEADS, CharacterMaterialTypes.HAIR); + register(registry, Hair.BROWN_BEADS, CharacterMaterialTypes.HAIR); + register(registry, Hair.DARK_BROWN_BEADS, CharacterMaterialTypes.HAIR); + register(registry, Hair.BLONDE_BEADS, CharacterMaterialTypes.HAIR); + register(registry, Hair.DIRTY_BLONDE_BEADS, CharacterMaterialTypes.HAIR); + register(registry, Hair.DIRTY_BROWN_BEADS, CharacterMaterialTypes.HAIR); + register(registry, Hair.GREASY_BEADS, CharacterMaterialTypes.HAIR); + register(registry, Hair.STRAW_BEADS, CharacterMaterialTypes.HAIR); + register(registry, Hair.GINGER_BEADS, CharacterMaterialTypes.HAIR); + register(registry, Hair.WHITE_BEADS, CharacterMaterialTypes.HAIR); + register(registry, Hair.GRAY_BEADS, CharacterMaterialTypes.HAIR); + + register(registry, Hair.BLACK_COPPER, CharacterMaterialTypes.HAIR); + register(registry, Hair.COLD_BLACK_COPPER, CharacterMaterialTypes.HAIR); + register(registry, Hair.BROWN_COPPER, CharacterMaterialTypes.HAIR); + register(registry, Hair.DARK_BROWN_COPPER, CharacterMaterialTypes.HAIR); + register(registry, Hair.BLONDE_COPPER, CharacterMaterialTypes.HAIR); + register(registry, Hair.DIRTY_BLONDE_COPPER, CharacterMaterialTypes.HAIR); + register(registry, Hair.DIRTY_BROWN_COPPER, CharacterMaterialTypes.HAIR); + register(registry, Hair.GREASY_COPPER, CharacterMaterialTypes.HAIR); + register(registry, Hair.STRAW_COPPER, CharacterMaterialTypes.HAIR); + register(registry, Hair.GINGER_COPPER, CharacterMaterialTypes.HAIR); + register(registry, Hair.WHITE_COPPER, CharacterMaterialTypes.HAIR); + register(registry, Hair.GRAY_COPPER, CharacterMaterialTypes.HAIR); + + register(registry, Hair.BLACK_ALMANDINE, CharacterMaterialTypes.HAIR); + register(registry, Hair.COLD_BLACK_ALMANDINE, CharacterMaterialTypes.HAIR); + register(registry, Hair.BROWN_ALMANDINE, CharacterMaterialTypes.HAIR); + register(registry, Hair.DARK_BROWN_ALMANDINE, CharacterMaterialTypes.HAIR); + register(registry, Hair.BLONDE_ALMANDINE, CharacterMaterialTypes.HAIR); + register(registry, Hair.DIRTY_BLONDE_ALMANDINE, CharacterMaterialTypes.HAIR); + register(registry, Hair.DIRTY_BROWN_ALMANDINE, CharacterMaterialTypes.HAIR); + register(registry, Hair.GREASY_ALMANDINE, CharacterMaterialTypes.HAIR); + register(registry, Hair.STRAW_ALMANDINE, CharacterMaterialTypes.HAIR); + register(registry, Hair.GINGER_ALMANDINE, CharacterMaterialTypes.HAIR); + register(registry, Hair.WHITE_ALMANDINE, CharacterMaterialTypes.HAIR); + register(registry, Hair.GRAY_ALMANDINE, CharacterMaterialTypes.HAIR); + + register(registry, Hair.BLACK_SILVER, CharacterMaterialTypes.HAIR); + register(registry, Hair.COLD_BLACK_SILVER, CharacterMaterialTypes.HAIR); + register(registry, Hair.BROWN_SILVER, CharacterMaterialTypes.HAIR); + register(registry, Hair.DARK_BROWN_SILVER, CharacterMaterialTypes.HAIR); + register(registry, Hair.BLONDE_SILVER, CharacterMaterialTypes.HAIR); + register(registry, Hair.DIRTY_BLONDE_SILVER, CharacterMaterialTypes.HAIR); + register(registry, Hair.DIRTY_BROWN_SILVER, CharacterMaterialTypes.HAIR); + register(registry, Hair.GREASY_SILVER, CharacterMaterialTypes.HAIR); + register(registry, Hair.STRAW_SILVER, CharacterMaterialTypes.HAIR); + register(registry, Hair.GINGER_SILVER, CharacterMaterialTypes.HAIR); + register(registry, Hair.WHITE_SILVER, CharacterMaterialTypes.HAIR); + register(registry, Hair.GRAY_SILVER, CharacterMaterialTypes.HAIR); + } + + private static void register(Registerable registry, RegistryKey key, CharacterMaterialTypes type) { + CharacterTextureMaterial pattern = new CharacterTextureMaterial(key.getValue(), type); + register(registry, key, pattern, getKey(type)); + } + private static void register(Registerable registerable, RegistryKey registryKey, CharacterTextureMaterial content, RegistryKey> registryRegistryKey) { + String name = registryKey.getValue().getPath(); + RegistryKey key = RegistryKey.of(registryRegistryKey,Identifier.of(MiddleEarth.MOD_ID,name)); + registerable.register(key, content); + } + + private static RegistryKey of(String idPath, CharacterMaterialTypes type) { + return RegistryKey.of(getKey(type), MiddleEarth.of(idPath)); + } + + public static RegistryKey> getKey(CharacterMaterialTypes type){ + return switch (type) { + case CharacterMaterialTypes.SKIN -> DynamicRegistriesME.SKIN_MATERIAL; + case CharacterMaterialTypes.EYE -> DynamicRegistriesME.EYE_MATERIAL; + case CharacterMaterialTypes.HAIR -> DynamicRegistriesME.HAIR_MATERIAL; + default -> null; + }; + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/CharacterPatternsRegistryME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/CharacterPatternsRegistryME.java new file mode 100644 index 0000000000..28cd2b8194 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/CharacterPatternsRegistryME.java @@ -0,0 +1,267 @@ +package net.sevenstars.middleearth.registries; + +import net.minecraft.registry.Registerable; +import net.minecraft.registry.Registry; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryWrapper; +import net.minecraft.registry.entry.RegistryEntry; +import net.minecraft.util.Identifier; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.resources.datas.common.CharacterPatternTypes; +import net.sevenstars.middleearth.resources.datas.texture_presets.CharacterTexturePattern; + +import java.util.Optional; + +/** + * Middle-earth mod npc texture patterns registry
+ * Used to register the different patterns
+ * Datadriven content, do not use during runtime! + *
+ */ +public class CharacterPatternsRegistryME { + public record Skins() { + public record Body(){ + public final static RegistryKey FAT = of("body_fat", CharacterPatternTypes.BODY); + public final static RegistryKey FEMALE = of("body_female", CharacterPatternTypes.BODY); + public final static RegistryKey MUSCULAR = of("body_muscular", CharacterPatternTypes.BODY); + public final static RegistryKey SKIN_TO_BONE = of("body_skin_to_bone", CharacterPatternTypes.BODY); + public final static RegistryKey SLIM = of("body_slim", CharacterPatternTypes.BODY); + } + + public record Feet(){ + public final static RegistryKey NORMAL = of("feet_normal", CharacterPatternTypes.FEET); + } + + public record Head(){ + /// Eyes Level : 4
Type : Normal + public final static RegistryKey FEMALE = of("head_female", CharacterPatternTypes.HEAD); + /// Eyes Level : 4
Type : Normal + public final static RegistryKey MALE = of("head_male", CharacterPatternTypes.HEAD); + /// Eyes Level : 4
Type : Normal, Wide + public final static RegistryKey GOBLIN = of("head_goblin", CharacterPatternTypes.HEAD); + /// Eyes Level : 4
Type : Normal, Wide + public final static RegistryKey GOBLIN_SMALL = of("head_goblin_small", CharacterPatternTypes.HEAD); + /// Eyes Level : 4
Type : Normal, Small, Wide + public final static RegistryKey GOBLIN_SMALL_THICK_BROW = of("head_goblin_thick_brow", CharacterPatternTypes.HEAD); + /// Eyes Level : 4
Type : Normal, Small, Wide + public final static RegistryKey GOBLIN_SMALL_VERY_WIDE = of("head_goblin_very_wide", CharacterPatternTypes.HEAD); + /// Eyes Level : 4
Type : Normal, Small, Wide + public final static RegistryKey GOBLIN_SMALL_WISE = of("head_goblin_wise", CharacterPatternTypes.HEAD); + /// Eyes Level : 5
Type : Normal, Wide + public final static RegistryKey URUK_DUMB = of("head_uruk_dumb", CharacterPatternTypes.HEAD); + /// Eyes Level : 6
Type : Wide + public final static RegistryKey URUK_TALL_DUMB = of("head_uruk_tall_dumb", CharacterPatternTypes.HEAD); + } + + public record Ear(){ + public final static RegistryKey LARGE_POINTY = of("ear_large_pointy", CharacterPatternTypes.EAR); + public final static RegistryKey NORMAL = of("ear_normal", CharacterPatternTypes.EAR); + public final static RegistryKey POINTY = of("ear_pointy", CharacterPatternTypes.EAR); + public final static RegistryKey SMALL = of("ear_small", CharacterPatternTypes.EAR); + public final static RegistryKey SMALL_POINTY = of("ear_small_pointy", CharacterPatternTypes.EAR); + public final static RegistryKey SQUARE = of("ear_square", CharacterPatternTypes.EAR); + public final static RegistryKey SQUARE_POINTY = of("ear_square_pointy", CharacterPatternTypes.EAR); + public final static RegistryKey WIDE_POINTY = of("ear_wide_pointy", CharacterPatternTypes.EAR); + } + + public record Nose(){ + public final static RegistryKey CUBE = of("nose_cube", CharacterPatternTypes.NOSE); + public final static RegistryKey VILLAGER = of("nose_villager", CharacterPatternTypes.NOSE); + public final static RegistryKey LARGE_CUBE_CENTER = of("nose_large_center", CharacterPatternTypes.NOSE); + public final static RegistryKey LARGE_CUBE_HIGH = of("nose_large_high", CharacterPatternTypes.NOSE); + } + + public record Scar(){ + public final static RegistryKey EYE_RIGHT = of("scar_eye_right", CharacterPatternTypes.SCAR); + public final static RegistryKey EYE_LEFT = of("scar_eye_left", CharacterPatternTypes.SCAR); + } + } + + public record Eyes() { + public record Eye() { + /// Eyes Level : 4
Type : Normal + public final static RegistryKey BLIND_LEFT = of("eye_blind_left", CharacterPatternTypes.EYE); + /// Eyes Level : 4
Type : Normal + public final static RegistryKey BLIND_RIGHT = of("eye_blind_right", CharacterPatternTypes.EYE); + /// Eyes Level : 4
Type : Normal + public final static RegistryKey COMMON = of("eye_common", CharacterPatternTypes.EYE); + /// Eyes Level : 5
Type : Normal + public final static RegistryKey COMMON_HIGH = of("eye_common_high", CharacterPatternTypes.EYE); + /// Eyes Level : 4
Type : Small (Narrow) + public final static RegistryKey SMALL = of("eye_small", CharacterPatternTypes.EYE); + /// Eyes Level : 5
Type : Small (Wide) + public final static RegistryKey SMALL_HIGH_WIDE = of("eye_small_high_wide", CharacterPatternTypes.EYE); + /// Eyes Level : 6
Type : Small (Wide) + public final static RegistryKey SMALL_VERY_HIGH_WIDE = of("eye_small_very_high_wide", CharacterPatternTypes.EYE); + /// Eyes Level : 4
Type : Small (Wide) + public final static RegistryKey SMALL_WIDE = of("eye_small_wide", CharacterPatternTypes.EYE); + } + } + + public record Hairs() { + public class Hair { + public final static RegistryKey BALD_DREADLOCKS_ORNAMENTED = of("hair_bald_dreadlocks_ornamented", CharacterPatternTypes.HAIR); + public final static RegistryKey BALD_SIDES = of("hair_bald_sides", CharacterPatternTypes.HAIR); + public final static RegistryKey BALD_SMALL_DREADLOCKS = of("hair_bald_small_dreadlocks", CharacterPatternTypes.HAIR); + public final static RegistryKey SIDE_BALDING = of("hair_side_balding", CharacterPatternTypes.HAIR); + public final static RegistryKey TOP_BALDING = of("hair_top_balding", CharacterPatternTypes.HAIR); + public final static RegistryKey BOWL = of("hair_bowl", CharacterPatternTypes.HAIR); + public final static RegistryKey DIRTY_MOP = of("hair_dirty_mop", CharacterPatternTypes.HAIR); + public final static RegistryKey FLAT_LONG = of("hair_flat_long", CharacterPatternTypes.HAIR); + public final static RegistryKey LONG = of("hair_long", CharacterPatternTypes.HAIR); + public final static RegistryKey PONYTAIL_SHORT_ORNAMENTED = of("hair_ponytail_short_ornamented", CharacterPatternTypes.HAIR); + public final static RegistryKey SHARP = of("hair_sharp", CharacterPatternTypes.HAIR); + public final static RegistryKey SHORT = of("hair_short", CharacterPatternTypes.HAIR); + public final static RegistryKey UNCUT = of("hair_uncut", CharacterPatternTypes.HAIR); + public final static RegistryKey VERY_LONG = of("hair_very_long", CharacterPatternTypes.HAIR); + public final static RegistryKey SEMI_LONG = of("hair_semi_long", CharacterPatternTypes.HAIR); + } + + public record Beard() { + public final static RegistryKey BROAD = of("beard_broad", CharacterPatternTypes.BEARD); + public final static RegistryKey CHUNKY_BRAIDS = of("beard_chunky_braids", CharacterPatternTypes.BEARD); + public final static RegistryKey CLEAN = of("beard_clean", CharacterPatternTypes.BEARD); + public final static RegistryKey DUAL_LARGE_ORNAMENTED = of("beard_dual_large_ornamented", CharacterPatternTypes.BEARD); + public final static RegistryKey DUAL_ORNAMENTED = of("beard_dual_ornamented", CharacterPatternTypes.BEARD); + public final static RegistryKey FANCY_MUSTACHE_ORNAMENTED = of("beard_fancy_mustache_ornamented", CharacterPatternTypes.BEARD); + public final static RegistryKey LARGE = of("beard_large", CharacterPatternTypes.BEARD); + public final static RegistryKey LONG_BRAIDS_ORNAMENTED = of("beard_long_braids_ornamented", CharacterPatternTypes.BEARD); + public final static RegistryKey LONG_SINGLE_ORNAMENTED = of("beard_long_single_ornamented", CharacterPatternTypes.BEARD); + public final static RegistryKey SHORT = of("beard_short", CharacterPatternTypes.BEARD); + public final static RegistryKey SINGLE = of("beard_single", CharacterPatternTypes.BEARD); + public final static RegistryKey UNCLEAN_ORNAMENTED = of("beard_unclean_ornamented", CharacterPatternTypes.BEARD); + public final static RegistryKey VERY_BROAD = of("beard_very_broad", CharacterPatternTypes.BEARD); + public final static RegistryKey VERY_LARGE_MUSTACHE = of("beard_very_large_mustache", CharacterPatternTypes.BEARD); + public final static RegistryKey VERY_LONG = of("beard_very_long", CharacterPatternTypes.BEARD); + public final static RegistryKey SEMI_LONG = of("beard_semi_long", CharacterPatternTypes.BEARD); + } + + public record Eyebrow() { + public final static RegistryKey BASIC = of("eyebrow_basic", CharacterPatternTypes.EYEBROW); + public final static RegistryKey LONG = of("eyebrow_long", CharacterPatternTypes.EYEBROW); + public final static RegistryKey SHORT = of("eyebrow_short", CharacterPatternTypes.EYEBROW); + public final static RegistryKey UNI = of("eyebrow_uni", CharacterPatternTypes.EYEBROW); + public final static RegistryKey THICK = of("eyebrow_thick", CharacterPatternTypes.EYEBROW); + } + } + + public static void bootstrapSkins(Registerable registry) { + register(registry, Skins.Body.FAT, CharacterPatternTypes.BODY); + register(registry, Skins.Body.FEMALE, CharacterPatternTypes.BODY); + register(registry, Skins.Body.MUSCULAR, CharacterPatternTypes.BODY); + register(registry, Skins.Body.SKIN_TO_BONE, CharacterPatternTypes.BODY); + register(registry, Skins.Body.SLIM, CharacterPatternTypes.BODY); + + register(registry, Skins.Head.FEMALE, CharacterPatternTypes.HEAD); + register(registry, Skins.Head.GOBLIN, CharacterPatternTypes.HEAD); + register(registry, Skins.Head.GOBLIN_SMALL, CharacterPatternTypes.HEAD); + register(registry, Skins.Head.GOBLIN_SMALL_THICK_BROW, CharacterPatternTypes.HEAD); + register(registry, Skins.Head.GOBLIN_SMALL_VERY_WIDE, CharacterPatternTypes.HEAD); + register(registry, Skins.Head.GOBLIN_SMALL_WISE, CharacterPatternTypes.HEAD); + register(registry, Skins.Head.MALE, CharacterPatternTypes.HEAD); + register(registry, Skins.Head.URUK_DUMB, CharacterPatternTypes.HEAD); + register(registry, Skins.Head.URUK_TALL_DUMB, CharacterPatternTypes.HEAD); + + register(registry, Skins.Ear.LARGE_POINTY, CharacterPatternTypes.EAR); + register(registry, Skins.Ear.NORMAL, CharacterPatternTypes.EAR); + register(registry, Skins.Ear.POINTY, CharacterPatternTypes.EAR); + register(registry, Skins.Ear.SMALL, CharacterPatternTypes.EAR); + register(registry, Skins.Ear.SMALL_POINTY, CharacterPatternTypes.EAR); + register(registry, Skins.Ear.SQUARE, CharacterPatternTypes.EAR); + register(registry, Skins.Ear.SQUARE_POINTY, CharacterPatternTypes.EAR); + register(registry, Skins.Ear.WIDE_POINTY, CharacterPatternTypes.EAR); + + register(registry, Skins.Nose.CUBE, CharacterPatternTypes.NOSE); + register(registry, Skins.Nose.VILLAGER, CharacterPatternTypes.NOSE); + register(registry, Skins.Nose.LARGE_CUBE_CENTER, CharacterPatternTypes.NOSE); + register(registry, Skins.Nose.LARGE_CUBE_HIGH, CharacterPatternTypes.NOSE); + + register(registry, Skins.Scar.EYE_RIGHT, CharacterPatternTypes.SCAR); + register(registry, Skins.Scar.EYE_LEFT, CharacterPatternTypes.SCAR); + } + + public static void bootstrapEyes(Registerable registry) { + register(registry, Eyes.Eye.BLIND_LEFT, CharacterPatternTypes.EYE); + register(registry, Eyes.Eye.BLIND_RIGHT, CharacterPatternTypes.EYE); + register(registry, Eyes.Eye.COMMON, CharacterPatternTypes.EYE); + register(registry, Eyes.Eye.COMMON_HIGH, CharacterPatternTypes.EYE); + register(registry, Eyes.Eye.SMALL, CharacterPatternTypes.EYE); + register(registry, Eyes.Eye.SMALL_HIGH_WIDE, CharacterPatternTypes.EYE); + register(registry, Eyes.Eye.SMALL_VERY_HIGH_WIDE, CharacterPatternTypes.EYE); + register(registry, Eyes.Eye.SMALL_WIDE, CharacterPatternTypes.EYE); + } + + public static void bootstrapHairs(Registerable registry) { + register(registry, Hairs.Hair.BALD_DREADLOCKS_ORNAMENTED, CharacterPatternTypes.HAIR, true); + register(registry, Hairs.Hair.BALD_SIDES, CharacterPatternTypes.HAIR); + register(registry, Hairs.Hair.BALD_SMALL_DREADLOCKS, CharacterPatternTypes.HAIR, true); + register(registry, Hairs.Hair.BOWL, CharacterPatternTypes.HAIR); + register(registry, Hairs.Hair.DIRTY_MOP, CharacterPatternTypes.HAIR, true); + register(registry, Hairs.Hair.FLAT_LONG, CharacterPatternTypes.HAIR, true); + register(registry, Hairs.Hair.LONG, CharacterPatternTypes.HAIR, true); + register(registry, Hairs.Hair.PONYTAIL_SHORT_ORNAMENTED, CharacterPatternTypes.HAIR); + register(registry, Hairs.Hair.SHARP, CharacterPatternTypes.HAIR); + register(registry, Hairs.Hair.SHORT, CharacterPatternTypes.HAIR); + register(registry, Hairs.Hair.SIDE_BALDING, CharacterPatternTypes.HAIR); + register(registry, Hairs.Hair.TOP_BALDING, CharacterPatternTypes.HAIR,true); + register(registry, Hairs.Hair.UNCUT, CharacterPatternTypes.HAIR); + register(registry, Hairs.Hair.VERY_LONG, CharacterPatternTypes.HAIR, true); + register(registry, Hairs.Hair.SEMI_LONG, CharacterPatternTypes.HAIR, true); + + register(registry, Hairs.Eyebrow.BASIC, CharacterPatternTypes.EYEBROW); + register(registry, Hairs.Eyebrow.LONG, CharacterPatternTypes.EYEBROW); + register(registry, Hairs.Eyebrow.SHORT, CharacterPatternTypes.EYEBROW); + register(registry, Hairs.Eyebrow.UNI, CharacterPatternTypes.EYEBROW); + register(registry, Hairs.Eyebrow.THICK, CharacterPatternTypes.EYEBROW); + + register(registry, Hairs.Beard.BROAD, CharacterPatternTypes.BEARD, true); + register(registry, Hairs.Beard.CHUNKY_BRAIDS, CharacterPatternTypes.BEARD, true); + register(registry, Hairs.Beard.CLEAN, CharacterPatternTypes.BEARD, true); + register(registry, Hairs.Beard.DUAL_LARGE_ORNAMENTED, CharacterPatternTypes.BEARD, true); + register(registry, Hairs.Beard.LONG_SINGLE_ORNAMENTED, CharacterPatternTypes.BEARD, true); + register(registry, Hairs.Beard.FANCY_MUSTACHE_ORNAMENTED, CharacterPatternTypes.BEARD, true); + register(registry, Hairs.Beard.DUAL_ORNAMENTED, CharacterPatternTypes.BEARD, true); + register(registry, Hairs.Beard.LARGE, CharacterPatternTypes.BEARD, true); + register(registry, Hairs.Beard.LONG_BRAIDS_ORNAMENTED, CharacterPatternTypes.BEARD, true); + register(registry, Hairs.Beard.SHORT, CharacterPatternTypes.BEARD, false); + register(registry, Hairs.Beard.SINGLE, CharacterPatternTypes.BEARD, true); + register(registry, Hairs.Beard.UNCLEAN_ORNAMENTED, CharacterPatternTypes.BEARD, true); + register(registry, Hairs.Beard.VERY_BROAD, CharacterPatternTypes.BEARD, true); + register(registry, Hairs.Beard.VERY_LARGE_MUSTACHE, CharacterPatternTypes.BEARD, true); + register(registry, Hairs.Beard.VERY_LONG, CharacterPatternTypes.BEARD, true); + register(registry, Hairs.Beard.SEMI_LONG, CharacterPatternTypes.BEARD, true); + } + + private static void register(Registerable registry, RegistryKey key, CharacterPatternTypes type) { + CharacterTexturePattern pattern = new CharacterTexturePattern(key.getValue(), type, false); + register(registry, key, pattern, getKey(type)); + } + private static void register(Registerable registry, RegistryKey key, CharacterPatternTypes type, boolean hasAddon) { + CharacterTexturePattern pattern = new CharacterTexturePattern(key.getValue(), type, hasAddon); + register(registry, key, pattern, getKey(type)); + } + + private static RegistryKey of(String idPath, CharacterPatternTypes type) { + return RegistryKey.of(getKey(type), MiddleEarth.of(idPath)); + } + + private static void register(Registerable registerable, RegistryKey registryKey, CharacterTexturePattern content, RegistryKey> registryRegistryKey) { + String name = registryKey.getValue().getPath(); + RegistryKey key = RegistryKey.of(registryRegistryKey,Identifier.of(MiddleEarth.MOD_ID,name)); + registerable.register(key, content); + } + + public static RegistryKey> getKey(CharacterPatternTypes type){ + return switch (type) { + case CharacterPatternTypes.BODY, CharacterPatternTypes.FEET, CharacterPatternTypes.HEAD, CharacterPatternTypes.SCAR, CharacterPatternTypes.EAR, CharacterPatternTypes.NOSE -> DynamicRegistriesME.SKIN_PATTERN; + case CharacterPatternTypes.EYE -> DynamicRegistriesME.EYE_PATTERN; + case CharacterPatternTypes.HAIR, CharacterPatternTypes.EYEBROW, CharacterPatternTypes.BEARD -> DynamicRegistriesME.HAIR_PATTERN; + }; + } + + public static Optional> get(RegistryWrapper.WrapperLookup registries, CharacterPatternTypes type, Identifier id) { + return registries.getOrThrow(getKey(type)).streamEntries().filter((pattern) -> + pattern.value().getPatternType() == type && pattern.matchesId(id)).findFirst(); + } + +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/CharacterTextureDatasRegistryME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/CharacterTextureDatasRegistryME.java new file mode 100644 index 0000000000..5928edd81d --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/CharacterTextureDatasRegistryME.java @@ -0,0 +1 @@ +package net.sevenstars.middleearth.registries; import net.minecraft.registry.Registerable; import net.minecraft.registry.RegistryEntryLookup; import net.minecraft.registry.RegistryKey; import net.minecraft.registry.entry.RegistryEntry; import net.sevenstars.middleearth.MiddleEarth; import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePresetDataPool; import java.util.*; public class CharacterTextureDatasRegistryME { /* [MORDOR] */ public final static RegistryKey MORDOR_ORC = of("mordor_orc"); public final static RegistryKey MORDOR_BLACK_URUK = of("mordor_black_uruk"); /* [HOBGOBLIN TRIBES] */ public final static RegistryKey HOBGOBLIN_TRIBES_GOBLIN = of("hobgoblin_tribes_goblin"); public final static RegistryKey HOBGOBLIN_TRIBES_HOBGOBLIN = of("hobgoblin_tribes_hobgoblin"); /* [ISENGARD] */ public final static RegistryKey ISENGARD_ORC = of("isengard_orc"); public final static RegistryKey ISENGARD_URUK_HAI = of("isengard_uruk_hai"); /* [WILD GOBLINS] */ public final static RegistryKey WILD_GOBLIN_GOBLIN = of("wild_goblin_goblin"); public final static RegistryKey WILD_GOBLIN_HOBGOBLIN = of("wild_goblin_hobgoblin"); public static void bootstrap(Registerable context) { RegistryEntryLookup npcTextureDataRegistryEntryLookup = context.getRegistryLookup(DynamicRegistriesME.TEXTURE_PRESETS); /* [MORDOR] */ //register(context, npcTextureDataRegistryEntryLookup, MORDOR_ORC, Mordor.GENERIC_ORC); //register(context, npcTextureDataRegistryEntryLookup, MORDOR_BLACK_URUK, Mordor.GENERIC_URUK); /* [HOBGOBLIN TRIBES] */ //register(context, npcTextureDataRegistryEntryLookup, HOBGOBLIN_TRIBES_GOBLIN, HobgoblinTribes.GENERIC_GOBLIN); //register(context, npcTextureDataRegistryEntryLookup, HOBGOBLIN_TRIBES_HOBGOBLIN, HobgoblinTribes.GENERIC_HOBGOBLIN); /* [ISENGARD] */ //register(context, npcTextureDataRegistryEntryLookup, ISENGARD_ORC, Isengard.GENERIC_ORC); //register(context, npcTextureDataRegistryEntryLookup, ISENGARD_URUK_HAI, Isengard.GENERIC_URUK_HAI); /* [WILD GOBLINS] */ //register(context, npcTextureDataRegistryEntryLookup, WILD_GOBLIN_GOBLIN, WildGoblin.GENERIC_GOBLIN); //register(context, npcTextureDataRegistryEntryLookup, WILD_GOBLIN_HOBGOBLIN, WildGoblin.GENERIC_HOBGOBLIN); } public static RegistryKey register(Registerable context, RegistryEntryLookup npcTextureDataRegistryEntryLookup, RegistryKey npcTextureDataKey, TexturePresetDataPool texturePresets) { Optional> optionalNpcTextureDataReference = npcTextureDataRegistryEntryLookup.getOptional(npcTextureDataKey); optionalNpcTextureDataReference.ifPresent(biomeReference -> context.register(npcTextureDataKey, texturePresets)); return npcTextureDataKey; } private static RegistryKey of(String idPath) { return RegistryKey.of(DynamicRegistriesME.TEXTURE_PRESETS, MiddleEarth.of(idPath)); } private static final class Generic{ } /* [Factions] */ /* private static final class LongbeardsErebor{ private static final TexturePresetData SHARED_PRESET = new TexturePresetData() .withMaterials(NpcTextureType.SKIN, List.of( TextureElementData.material(CharacterMaterialsRegistryME.Skin.PALE), TextureElementData.material(CharacterMaterialsRegistryME.Skin.BEIGE) )) .withPatterns(NpcTextureType.NOSE, List.of( TextureElementData.pattern(CharacterPatternsRegistryME.Skins.Nose.CUBE) )) .withPatterns(NpcTextureType.EAR, List.of( TextureElementData.pattern(CharacterPatternsRegistryME.Skins.Ear.SQUARE), TextureElementData.pattern(CharacterPatternsRegistryME.Skins.Ear.NORMAL) )) .withPatterns(NpcTextureType.EYE, List.of( TextureElementData.pattern(CharacterPatternsRegistryME.Eyes.Eye.COMMON) )) .withMaterials(NpcTextureType.EYE, List.of( TextureElementData.material(CharacterMaterialsRegistryME.Eye.BLUE), TextureElementData.material(CharacterMaterialsRegistryME.Eye.GREEN), TextureElementData.material(CharacterMaterialsRegistryME.Eye.DARK_GREEN), TextureElementData.material(CharacterMaterialsRegistryME.Eye.BLACK), TextureElementData.material(CharacterMaterialsRegistryME.Eye.NAVY), TextureElementData.material(CharacterMaterialsRegistryME.Eye.BROWN) )) .withMaterials(NpcTextureType.HAIR, List.of( TextureElementData.material(CharacterMaterialsRegistryME.Hair.COLD_BLACK_COPPER), TextureElementData.material(CharacterMaterialsRegistryME.Hair.BLACK_COPPER), TextureElementData.material(CharacterMaterialsRegistryME.Hair.DARK_BROWN_COPPER), TextureElementData.material(CharacterMaterialsRegistryME.Hair.BROWN_COPPER), TextureElementData.material(CharacterMaterialsRegistryME.Hair.BROWN_BEADS), TextureElementData.material(CharacterMaterialsRegistryME.Hair.GRAY_BEADS), TextureElementData.material(CharacterMaterialsRegistryME.Hair.GRAY_COPPER) )) .withPatterns(NpcTextureType.EYEBROW, List.of( TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Eyebrow.BASIC), TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Eyebrow.SHORT), TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Eyebrow.THICK), TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Eyebrow.LONG) )) .withPatterns(NpcTextureType.HAIR, List.of( TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Hair.PONYTAIL_SHORT_ORNAMENTED), TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Hair.SHARP) )) .withPatterns(NpcTextureType.BEARD, List.of( TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.UNCLEAN_ORNAMENTED), TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.DUAL_LARGE_ORNAMENTED), TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.DUAL_ORNAMENTED), TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.LONG_SINGLE_ORNAMENTED) )); private static final TexturePresetData MALE_PRESET = new TexturePresetData() .withPatterns(NpcTextureType.HEAD, List.of( TextureElementData.pattern(CharacterPatternsRegistryME.Skins.Head.MALE) )) .withPatterns(NpcTextureType.BODY, List.of( TextureElementData.pattern(CharacterPatternsRegistryME.Skins.Body.MUSCULAR), TextureElementData.pattern(CharacterPatternsRegistryME.Skins.Body.FAT) )) .withPatterns(NpcTextureType.EYEBROW, List.of( TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Eyebrow.UNI) )) .withPatterns(NpcTextureType.HAIR, List.of( TexturePresetData.EMPTY_VALUE_KEY.withWeight(3), TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Hair.SHORT), TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Hair.BALD_SIDES), TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Hair.TOP_BALDING), TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Hair.SIDE_BALDING) )) .withPatterns(NpcTextureType.BEARD, List.of( TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.BROAD), TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.LARGE), TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.VERY_LARGE_MUSTACHE), TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.VERY_LONG) )); private static final TexturePresetData FEMALE_PRESET = new TexturePresetData() .withPatterns(NpcTextureType.HEAD, List.of( TextureElementData.pattern(CharacterPatternsRegistryME.Skins.Head.FEMALE) )) .withPatterns(NpcTextureType.BODY, List.of( TextureElementData.pattern(CharacterPatternsRegistryME.Skins.Body.FEMALE), TextureElementData.pattern(CharacterPatternsRegistryME.Skins.Body.SLIM), TextureElementData.pattern(CharacterPatternsRegistryME.Skins.Body.FAT) )); private static final TexturePresetData MIGHTY_SHARED_PRESET = SHARED_PRESET.copy() .withPatterns(NpcTextureType.BODY, List.of( TextureElementData.pattern(CharacterPatternsRegistryME.Skins.Body.MUSCULAR), TextureElementData.pattern(CharacterPatternsRegistryME.Skins.Body.FAT) )) .withPatterns(NpcTextureType.HEAD, List.of( TextureElementData.pattern(CharacterPatternsRegistryME.Skins.Head.MALE) )) .clearMaterials(NpcTextureType.HAIR) .withMaterials(NpcTextureType.HAIR, List.of( TextureElementData.material(CharacterMaterialsRegistryME.Hair.COLD_BLACK_GOLD), TextureElementData.material(CharacterMaterialsRegistryME.Hair.BLACK_GOLD), TextureElementData.material(CharacterMaterialsRegistryME.Hair.DARK_BROWN_GOLD), TextureElementData.material(CharacterMaterialsRegistryME.Hair.BROWN_GOLD), TextureElementData.material(CharacterMaterialsRegistryME.Hair.GRAY_GOLD), TextureElementData.material(CharacterMaterialsRegistryME.Hair.WHITE_GOLD) )) .clearPatterns(NpcTextureType.BEARD) .withPatterns(NpcTextureType.BEARD, List.of( TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.CLEAN), TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.VERY_LONG), TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.VERY_BROAD), TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.DUAL_LARGE_ORNAMENTED), TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.VERY_LARGE_MUSTACHE), TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.FANCY_MUSTACHE_ORNAMENTED), TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.LONG_BRAIDS_ORNAMENTED), TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.CHUNKY_BRAIDS) )); public static TexturePresetDatas GENERIC_DWARF = new TexturePresetDatas( new HashMap<>(){{ put(EntityCategories.SHARED, List.of(SHARED_PRESET)); put(EntityCategories.MALE, List.of(MALE_PRESET)); put(EntityCategories.FEMALE, List.of(FEMALE_PRESET)); }} ); public static TexturePresetDatas MIGHTY_DWARF = new TexturePresetDatas( new HashMap<>(){{ put(EntityCategories.SHARED, List.of(MIGHTY_SHARED_PRESET)); put(EntityCategories.MALE, List.of( new TexturePresetData().withWeight(5), new TexturePresetData() .withPatterns(NpcTextureType.EYE, List.of( TextureElementData.pattern(CharacterPatternsRegistryME.Eyes.Eye.BLIND_LEFT) )) .withPatterns(NpcTextureType.SCAR, List.of( TextureElementData.pattern(CharacterPatternsRegistryME.Skins.Scar.EYE_LEFT) )), new TexturePresetData() .withPatterns(NpcTextureType.EYE, List.of( TextureElementData.pattern(CharacterPatternsRegistryME.Eyes.Eye.BLIND_RIGHT) )) .withPatterns(NpcTextureType.SCAR, List.of( TextureElementData.pattern(CharacterPatternsRegistryME.Skins.Scar.EYE_RIGHT) )) )); }} ); } /* private static final class Lothlorien{ public static TexturePresetDatas GENERIC_ELF = new TexturePresetDatas( new HashMap<>(){{ put( EntityCategories.SHARED, List.of(new TexturePresetData() .withMaterials(NpcTextureType.SKIN, List.of( CharacterMaterialsRegistryME.Skin.TAN, CharacterMaterialsRegistryME.Skin.PALE, CharacterMaterialsRegistryME.Skin.BEIGE )) .withPatterns(NpcTextureType.EAR, List.of( CharacterPatternsRegistryME.Skins.Ear.SMALL_POINTY, CharacterPatternsRegistryME.Skins.Ear.POINTY, CharacterPatternsRegistryME.Skins.Ear.SMALL )) .withMaterials(NpcTextureType.EYE, List.of( CharacterMaterialsRegistryME.Eye.BLUE, CharacterMaterialsRegistryME.Eye.GREEN )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsRegistryME.Eyes.Eye.COMMON )) .withMaterials(NpcTextureType.HAIR, List.of( CharacterMaterialsRegistryME.Hair.BLONDE_BEADS, CharacterMaterialsRegistryME.Hair.BLONDE_SILVER, CharacterMaterialsRegistryME.Hair.BLONDE_COPPER, CharacterMaterialsRegistryME.Hair.DIRTY_BLONDE_BEADS, CharacterMaterialsRegistryME.Hair.DIRTY_BLONDE_SILVER, CharacterMaterialsRegistryME.Hair.DIRTY_BLONDE_COPPER, CharacterMaterialsRegistryME.Hair.STRAW_BEADS, CharacterMaterialsRegistryME.Hair.STRAW_SILVER, CharacterMaterialsRegistryME.Hair.STRAW_COPPER )) .withPatterns(NpcTextureType.EYEBROW, List.of( CharacterPatternsRegistryME.Hairs.Eyebrow.BASIC, CharacterPatternsRegistryME.Hairs.Eyebrow.SHORT )) ) ); put( EntityCategories.MALE, List.of(new TexturePresetData() .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsRegistryME.Skins.Body.MUSCULAR )) .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsRegistryME.Skins.Head.MALE )) .withPatterns(NpcTextureType.HAIR, List.of( CharacterPatternsRegistryME.Hairs.Hair.SHORT, CharacterPatternsRegistryME.Hairs.Hair.SHARP, CharacterPatternsRegistryME.Hairs.Hair.FLAT_LONG, CharacterPatternsRegistryME.Hairs.Hair.SEMI_LONG, CharacterPatternsRegistryME.Hairs.Hair.UNCUT )) .withPatterns(NpcTextureType.CLOTHE_PRESETS, List.of( //CharacterPatternsME.Clothing.TOGA, //CharacterPatternsME.Clothing.SKIRT, //CharacterPatternsME.Clothing.PANTS )) ) ); put( EntityCategories.FEMALE, List.of( new TexturePresetData() .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsRegistryME.Skins.Body.FEMALE )) .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsRegistryME.Skins.Head.FEMALE )) .withPatterns(NpcTextureType.HAIR, List.of( CharacterPatternsRegistryME.Hairs.Hair.UNCUT, CharacterPatternsRegistryME.Hairs.Hair.LONG, CharacterPatternsRegistryME.Hairs.Hair.SEMI_LONG, CharacterPatternsRegistryME.Hairs.Hair.VERY_LONG) ) .withPatterns(NpcTextureType.CLOTHE_PRESETS, List.of( //CharacterPatternsME.Clothing.FULL_TOGA, //CharacterPatternsME.Clothing.ROBE )) ) ); }} ); } private static final class Mordor{ private static final TexturePresetData SHARED_PRESET = new TexturePresetData() .withMaterials(NpcTextureType.SKIN, List.of( CharacterMaterialsRegistryME.Skin.GREY, CharacterMaterialsRegistryME.Skin.LIGHT_GREY, CharacterMaterialsRegistryME.Skin.RED, CharacterMaterialsRegistryME.Skin.RUST, CharacterMaterialsRegistryME.Skin.WINE )) .withMaterials(NpcTextureType.EYE, List.of( CharacterMaterialsRegistryME.Eye.RED, CharacterMaterialsRegistryME.Eye.PALE, CharacterMaterialsRegistryME.Eye.YELLOW )) .withEmissiveEyes(true) .withMaterials(NpcTextureType.HAIR, List.of( CharacterMaterialsRegistryME.Hair.GREASY_ALMANDINE, CharacterMaterialsRegistryME.Hair.GREASY_BEADS, CharacterMaterialsRegistryME.Hair.DIRTY_BROWN_ALMANDINE, CharacterMaterialsRegistryME.Hair.DIRTY_BROWN_BEADS )) .withPatterns(NpcTextureType.HAIR, List.of( CharacterPatternsRegistryME.Hairs.Hair.DIRTY_MOP, CharacterPatternsRegistryME.Hairs.Hair.BALD_DREADLOCKS_ORNAMENTED, CharacterPatternsRegistryME.Hairs.Hair.BALD_SMALL_DREADLOCKS, CharacterPatternsRegistryME.Hairs.Hair.PONYTAIL_SHORT_ORNAMENTED, CharacterPatternsRegistryME.Hairs.Hair.TOP_BALDING, CharacterPatternsRegistryME.Hairs.Hair.UNCUT, CharacterPatternsRegistryME.Hairs.Hair.SHORT, CharacterPatternsRegistryME.Hairs.Hair.BALD_SIDES )) .withPatterns(NpcTextureType.CLOTHE_PRESETS, List.of( //CharacterPatternsME.Clothing.PANTS )); private static final TexturePresetData ORC_PRESET = new TexturePresetData() .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsRegistryME.Skins.Body.SKIN_TO_BONE, CharacterPatternsRegistryME.Skins.Body.SLIM )) .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsRegistryME.Skins.Head.GOBLIN, CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL, CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_THICK_BROW, CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_VERY_WIDE, CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_WISE )) .withPatterns(NpcTextureType.EAR, List.of( CharacterPatternsRegistryME.Skins.Ear.WIDE_POINTY, CharacterPatternsRegistryME.Skins.Ear.SQUARE_POINTY, CharacterPatternsRegistryME.Skins.Ear.LARGE_POINTY, CharacterPatternsRegistryME.Skins.Ear.SMALL_POINTY )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsRegistryME.Eyes.Eye.COMMON, CharacterPatternsRegistryME.Eyes.Eye.SMALL_WIDE, CharacterPatternsRegistryME.Eyes.Eye.SMALL )) .withPatterns(NpcTextureType.CLOTHE_PRESETS, List.of( //CharacterPatternsME.Clothing.THONG )); private static final TexturePresetData URUK_PRESET_A = new TexturePresetData() .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsRegistryME.Skins.Head.URUK_DUMB )) .withPatterns(NpcTextureType.EAR, List.of( CharacterPatternsRegistryME.Skins.Ear.SQUARE, CharacterPatternsRegistryME.Skins.Ear.NORMAL )) .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsRegistryME.Skins.Body.MUSCULAR )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsRegistryME.Eyes.Eye.SMALL_WIDE )); private static final TexturePresetData URUK_PRESET_B = new TexturePresetData() .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsRegistryME.Skins.Head.URUK_TALL_DUMB )) .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsRegistryME.Skins.Body.MUSCULAR )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsRegistryME.Eyes.Eye.SMALL_HIGH_WIDE )); public static TexturePresetDatas GENERIC_ORC = new TexturePresetDatas( new HashMap<>(){{ put(EntityCategories.SHARED, List.of(SHARED_PRESET)); put(EntityCategories.MALE, List.of(ORC_PRESET)); }} ); public static TexturePresetDatas GENERIC_URUK = new TexturePresetDatas( new HashMap<>(){{ put(EntityCategories.SHARED, List.of(SHARED_PRESET)); put(EntityCategories.MALE, List.of(URUK_PRESET_A, URUK_PRESET_B)); }} ); } private static final class HobgoblinTribes{ private static final TexturePresetData SHARED_PRESET = new TexturePresetData() .withMaterials(NpcTextureType.SKIN, List.of( CharacterMaterialsRegistryME.Skin.LIGHT_GREY, CharacterMaterialsRegistryME.Skin.PINK, CharacterMaterialsRegistryME.Skin.PALE_WHITE )) .withMaterials(NpcTextureType.EYE, List.of( CharacterMaterialsRegistryME.Eye.RED, CharacterMaterialsRegistryME.Eye.YELLOW )) .withEmissiveEyes(true) .withMaterials(NpcTextureType.HAIR, List.of( CharacterMaterialsRegistryME.Hair.GREASY_ALMANDINE, CharacterMaterialsRegistryME.Hair.GREASY_BEADS, CharacterMaterialsRegistryME.Hair.DIRTY_BROWN_ALMANDINE, CharacterMaterialsRegistryME.Hair.DIRTY_BROWN_BEADS )) .withPatterns(NpcTextureType.HAIR, List.of( CharacterPatternsRegistryME.Hairs.Hair.DIRTY_MOP, CharacterPatternsRegistryME.Hairs.Hair.BALD_DREADLOCKS_ORNAMENTED, CharacterPatternsRegistryME.Hairs.Hair.BALD_SMALL_DREADLOCKS, CharacterPatternsRegistryME.Hairs.Hair.PONYTAIL_SHORT_ORNAMENTED, CharacterPatternsRegistryME.Hairs.Hair.TOP_BALDING, CharacterPatternsRegistryME.Hairs.Hair.UNCUT, CharacterPatternsRegistryME.Hairs.Hair.SHORT, CharacterPatternsRegistryME.Hairs.Hair.BALD_SIDES )) .withPatterns(NpcTextureType.CLOTHE_PRESETS, List.of( //CharacterPatternsME.Clothing.PANTS )); private static final TexturePresetData GOBLIN_PRESET = new TexturePresetData() .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsRegistryME.Skins.Body.SKIN_TO_BONE, CharacterPatternsRegistryME.Skins.Body.SLIM )) .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsRegistryME.Skins.Head.GOBLIN, CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL, CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_THICK_BROW, CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_VERY_WIDE, CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_WISE )) .withPatterns(NpcTextureType.EAR, List.of( CharacterPatternsRegistryME.Skins.Ear.WIDE_POINTY, CharacterPatternsRegistryME.Skins.Ear.SQUARE_POINTY, CharacterPatternsRegistryME.Skins.Ear.LARGE_POINTY, CharacterPatternsRegistryME.Skins.Ear.SMALL_POINTY )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsRegistryME.Eyes.Eye.COMMON, CharacterPatternsRegistryME.Eyes.Eye.SMALL_WIDE, CharacterPatternsRegistryME.Eyes.Eye.SMALL )) .withPatterns(NpcTextureType.CLOTHE_PRESETS, List.of( //CharacterPatternsME.Clothing.THONG )); private static final TexturePresetData HOBGOBLIN_PRESET_A = new TexturePresetData() .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsRegistryME.Skins.Head.URUK_DUMB )) .withPatterns(NpcTextureType.EAR, List.of( CharacterPatternsRegistryME.Skins.Ear.SQUARE, CharacterPatternsRegistryME.Skins.Ear.NORMAL )) .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsRegistryME.Skins.Body.MUSCULAR )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsRegistryME.Eyes.Eye.SMALL_WIDE )); private static final TexturePresetData HOBGOBLIN_PRESET_B = new TexturePresetData() .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsRegistryME.Skins.Head.URUK_TALL_DUMB )) .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsRegistryME.Skins.Body.MUSCULAR )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsRegistryME.Eyes.Eye.SMALL_HIGH_WIDE )); public static TexturePresetDatas GENERIC_GOBLIN = new TexturePresetDatas( new HashMap<>(){{ put(EntityCategories.SHARED, List.of(SHARED_PRESET)); put(EntityCategories.MALE, List.of(GOBLIN_PRESET)); }} ); public static TexturePresetDatas GENERIC_HOBGOBLIN = new TexturePresetDatas( new HashMap<>(){{ put(EntityCategories.SHARED, List.of(SHARED_PRESET)); put(EntityCategories.MALE, List.of(HOBGOBLIN_PRESET_A, HOBGOBLIN_PRESET_B)); }} ); } private static final class Isengard{ private static final TexturePresetData SHARED_PRESET = new TexturePresetData() .withMaterials(NpcTextureType.SKIN, List.of( CharacterMaterialsRegistryME.Skin.BROWN, CharacterMaterialsRegistryME.Skin.DARK_PINK, CharacterMaterialsRegistryME.Skin.RED, CharacterMaterialsRegistryME.Skin.RUST, CharacterMaterialsRegistryME.Skin.SLIGHT_BROWN, CharacterMaterialsRegistryME.Skin.WINE )) .withMaterials(NpcTextureType.EYE, List.of( CharacterMaterialsRegistryME.Eye.YELLOW )) .withEmissiveEyes(true) .withMaterials(NpcTextureType.HAIR, List.of( CharacterMaterialsRegistryME.Hair.GREASY_ALMANDINE, CharacterMaterialsRegistryME.Hair.GREASY_BEADS, CharacterMaterialsRegistryME.Hair.DIRTY_BROWN_ALMANDINE, CharacterMaterialsRegistryME.Hair.DIRTY_BROWN_BEADS )) .withPatterns(NpcTextureType.HAIR, List.of( CharacterPatternsRegistryME.Hairs.Hair.DIRTY_MOP, CharacterPatternsRegistryME.Hairs.Hair.BALD_DREADLOCKS_ORNAMENTED, CharacterPatternsRegistryME.Hairs.Hair.BALD_SMALL_DREADLOCKS, CharacterPatternsRegistryME.Hairs.Hair.PONYTAIL_SHORT_ORNAMENTED, CharacterPatternsRegistryME.Hairs.Hair.TOP_BALDING, CharacterPatternsRegistryME.Hairs.Hair.UNCUT, CharacterPatternsRegistryME.Hairs.Hair.SHORT, CharacterPatternsRegistryME.Hairs.Hair.BALD_SIDES )) .withPatterns(NpcTextureType.CLOTHE_PRESETS, List.of( //CharacterPatternsME.Clothing.PANTS )); private static final TexturePresetData ORC_PRESET = new TexturePresetData() .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsRegistryME.Skins.Body.SKIN_TO_BONE, CharacterPatternsRegistryME.Skins.Body.SLIM )) .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsRegistryME.Skins.Head.GOBLIN, CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL, CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_THICK_BROW, CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_VERY_WIDE, CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_WISE )) .withPatterns(NpcTextureType.EAR, List.of( CharacterPatternsRegistryME.Skins.Ear.WIDE_POINTY, CharacterPatternsRegistryME.Skins.Ear.SQUARE_POINTY, CharacterPatternsRegistryME.Skins.Ear.LARGE_POINTY, CharacterPatternsRegistryME.Skins.Ear.SMALL_POINTY )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsRegistryME.Eyes.Eye.COMMON, CharacterPatternsRegistryME.Eyes.Eye.SMALL_WIDE, CharacterPatternsRegistryME.Eyes.Eye.SMALL )) .withPatterns(NpcTextureType.CLOTHE_PRESETS, List.of( //CharacterPatternsME.Clothing.THONG )); private static final TexturePresetData URUK_HAI_PRESET_A = new TexturePresetData() .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsRegistryME.Skins.Head.URUK_DUMB )) .withPatterns(NpcTextureType.EAR, List.of( CharacterPatternsRegistryME.Skins.Ear.SQUARE, CharacterPatternsRegistryME.Skins.Ear.NORMAL )) .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsRegistryME.Skins.Body.MUSCULAR )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsRegistryME.Eyes.Eye.SMALL_WIDE )); private static final TexturePresetData URUK_HAI_PRESET_B = new TexturePresetData() .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsRegistryME.Skins.Head.URUK_TALL_DUMB )) .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsRegistryME.Skins.Body.MUSCULAR )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsRegistryME.Eyes.Eye.SMALL_HIGH_WIDE )); public static TexturePresetDatas GENERIC_ORC = new TexturePresetDatas( new HashMap<>(){{ put(EntityCategories.SHARED, List.of(SHARED_PRESET)); put(EntityCategories.MALE, List.of(ORC_PRESET)); }} ); public static TexturePresetDatas GENERIC_URUK_HAI = new TexturePresetDatas( new HashMap<>(){{ put(EntityCategories.SHARED, List.of(SHARED_PRESET)); put(EntityCategories.MALE, List.of(URUK_HAI_PRESET_A, URUK_HAI_PRESET_B)); }} ); } private static final class WildGoblin { private static final TexturePresetData SHARED_PRESET = new TexturePresetData() .withMaterials(NpcTextureType.SKIN, List.of( CharacterMaterialsRegistryME.Skin.PALE, CharacterMaterialsRegistryME.Skin.PINK, CharacterMaterialsRegistryME.Skin.TAN_DESATURATED, CharacterMaterialsRegistryME.Skin.OLIVE )) .withMaterials(NpcTextureType.EYE, List.of( CharacterMaterialsRegistryME.Eye.RED )) .withEmissiveEyes(true) .withMaterials(NpcTextureType.HAIR, List.of( CharacterMaterialsRegistryME.Hair.GREASY_ALMANDINE, CharacterMaterialsRegistryME.Hair.GREASY_BEADS, CharacterMaterialsRegistryME.Hair.DIRTY_BROWN_ALMANDINE, CharacterMaterialsRegistryME.Hair.DIRTY_BROWN_BEADS )) .withPatterns(NpcTextureType.HAIR, List.of( CharacterPatternsRegistryME.Hairs.Hair.DIRTY_MOP, CharacterPatternsRegistryME.Hairs.Hair.BALD_DREADLOCKS_ORNAMENTED, CharacterPatternsRegistryME.Hairs.Hair.BALD_SMALL_DREADLOCKS, CharacterPatternsRegistryME.Hairs.Hair.PONYTAIL_SHORT_ORNAMENTED, CharacterPatternsRegistryME.Hairs.Hair.TOP_BALDING, CharacterPatternsRegistryME.Hairs.Hair.UNCUT, CharacterPatternsRegistryME.Hairs.Hair.SHORT, CharacterPatternsRegistryME.Hairs.Hair.BALD_SIDES )) .withPatterns(NpcTextureType.CLOTHE_PRESETS, List.of( //CharacterPatternsME.Clothing.THONG )); private static final TexturePresetData GOBLIN_PRESET = new TexturePresetData() .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsRegistryME.Skins.Body.SKIN_TO_BONE, CharacterPatternsRegistryME.Skins.Body.SLIM )) .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsRegistryME.Skins.Head.GOBLIN, CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL, CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_THICK_BROW, CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_VERY_WIDE, CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_WISE )) .withPatterns(NpcTextureType.EAR, List.of( CharacterPatternsRegistryME.Skins.Ear.WIDE_POINTY, CharacterPatternsRegistryME.Skins.Ear.SQUARE_POINTY, CharacterPatternsRegistryME.Skins.Ear.LARGE_POINTY, CharacterPatternsRegistryME.Skins.Ear.SMALL_POINTY )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsRegistryME.Eyes.Eye.COMMON, CharacterPatternsRegistryME.Eyes.Eye.SMALL_WIDE, CharacterPatternsRegistryME.Eyes.Eye.SMALL )); private static final TexturePresetData HOBGOBLIN_PRESET_A = new TexturePresetData() .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsRegistryME.Skins.Head.URUK_DUMB )) .withPatterns(NpcTextureType.EAR, List.of( CharacterPatternsRegistryME.Skins.Ear.SQUARE, CharacterPatternsRegistryME.Skins.Ear.NORMAL )) .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsRegistryME.Skins.Body.MUSCULAR )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsRegistryME.Eyes.Eye.SMALL_WIDE )); private static final TexturePresetData HOBGOBLIN_PRESET_B = new TexturePresetData() .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsRegistryME.Skins.Head.URUK_TALL_DUMB )) .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsRegistryME.Skins.Body.MUSCULAR )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsRegistryME.Eyes.Eye.SMALL_HIGH_WIDE )); public static TexturePresetDatas GENERIC_GOBLIN = new TexturePresetDatas( new HashMap<>(){{ put(EntityCategories.SHARED, List.of(SHARED_PRESET)); put(EntityCategories.MALE, List.of(GOBLIN_PRESET)); }} ); public static TexturePresetDatas GENERIC_HOBGOBLIN = new TexturePresetDatas( new HashMap<>(){{ put(EntityCategories.SHARED, List.of(SHARED_PRESET)); put(EntityCategories.MALE, List.of(HOBGOBLIN_PRESET_A, HOBGOBLIN_PRESET_B)); }} ); } */ } \ No newline at end of file diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/DynamicRegistriesME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/DynamicRegistriesME.java new file mode 100644 index 0000000000..0b59e1b51d --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/DynamicRegistriesME.java @@ -0,0 +1,94 @@ +package net.sevenstars.middleearth.registries; + +import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; +import net.fabricmc.fabric.api.event.registry.DynamicRegistries; +import net.minecraft.registry.Registry; +import net.minecraft.registry.RegistryBuilder; +import net.minecraft.registry.RegistryKey; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.datageneration.providers.dynamic.GreatHornVariantsProvider; +import net.sevenstars.middleearth.datageneration.providers.dynamic.*; +import net.sevenstars.middleearth.entity.beasts.great_horn.GreatHornVariant; +import net.sevenstars.middleearth.entity.spider.SpiderVariant; +import net.sevenstars.middleearth.registries.content.biomevents.BiomeEventRegistry; +import net.sevenstars.middleearth.registries.content.greathornvariants.GreatHornVariantRegistry; +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.registries.content.npcs.NpcRegistry; +import net.sevenstars.middleearth.registries.content.races.RaceRegistry; +import net.sevenstars.middleearth.registries.content.spidervariants.SpiderVariantRegistry; +import net.sevenstars.middleearth.registries.content.structuremanagerdatas.StructureManagerDataRegistry; +import net.sevenstars.middleearth.resources.datas.biome_events.BiomeEventData; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.npcs.NpcData; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePresetDataPool; +import net.sevenstars.middleearth.resources.datas.races.Race; +import net.sevenstars.middleearth.resources.datas.texture_presets.CharacterTextureMaterial; +import net.sevenstars.middleearth.resources.datas.texture_presets.CharacterTexturePattern; +import net.sevenstars.middleearth.resources.datas.structure_manager_datas.StructureManagerData; + +public class DynamicRegistriesME extends net.sevenstars.api.registries.DynamicRegistries { + public static final RegistryKey> RACE = RegistryKey.ofRegistry(MiddleEarth.of("race")); + public static final RegistryKey> FACTION = RegistryKey.ofRegistry(MiddleEarth.of("faction")); + public static final RegistryKey> NPC = RegistryKey.ofRegistry(MiddleEarth.of("npc")); + public static final RegistryKey> STRUCTURE_MANAGER_DATA = RegistryKey.ofRegistry(MiddleEarth.of("structure_manager_data")); + public static final RegistryKey> BIOME_EVENT = RegistryKey.ofRegistry(MiddleEarth.of("biome_event")); + + public static final RegistryKey> TEXTURE_PRESETS = RegistryKey.ofRegistry(MiddleEarth.of( "texture_presets")); + + public static final RegistryKey> SKIN_MATERIAL = RegistryKey.ofRegistry(MiddleEarth.of("skin_material")); + public static final RegistryKey> EYE_MATERIAL = RegistryKey.ofRegistry(MiddleEarth.of("eye_material")); + public static final RegistryKey> HAIR_MATERIAL = RegistryKey.ofRegistry(MiddleEarth.of("hair_material")); + + public static final RegistryKey> SKIN_PATTERN = RegistryKey.ofRegistry(MiddleEarth.of("skin_pattern")); + public static final RegistryKey> EYE_PATTERN = RegistryKey.ofRegistry(MiddleEarth.of("eye_pattern")); + public static final RegistryKey> HAIR_PATTERN = RegistryKey.ofRegistry(MiddleEarth.of("hair_pattern")); + + public static final RegistryKey> SPIDER_VARIANTS = RegistryKey.ofRegistry(MiddleEarth.of("spider_variants")); + public static final RegistryKey> GREAT_HORN_VARIANTS = RegistryKey.ofRegistry(MiddleEarth.of("great_horn_variants")); + + public static void register() { + MiddleEarth.LOGGER.logDebugMsg("Registering Dynamic Entries for " + MiddleEarth.MOD_ID); + DynamicRegistries.registerSynced(RACE, Race.CODEC); + DynamicRegistries.registerSynced(NPC, NpcData.CODEC); + DynamicRegistries.registerSynced(FACTION, Faction.CODEC); + DynamicRegistries.registerSynced(BIOME_EVENT, BiomeEventData.CODEC); + DynamicRegistries.registerSynced(STRUCTURE_MANAGER_DATA, StructureManagerData.CODEC); + DynamicRegistries.registerSynced(TEXTURE_PRESETS, TexturePresetDataPool.CODEC); + + + DynamicRegistries.registerSynced(SKIN_PATTERN, CharacterTexturePattern.CODEC); + DynamicRegistries.registerSynced(EYE_PATTERN, CharacterTexturePattern.CODEC); + DynamicRegistries.registerSynced(HAIR_PATTERN, CharacterTexturePattern.CODEC); + + DynamicRegistries.registerSynced(SKIN_MATERIAL, CharacterTextureMaterial.CODEC); + DynamicRegistries.registerSynced(EYE_MATERIAL, CharacterTextureMaterial.CODEC); + DynamicRegistries.registerSynced(HAIR_MATERIAL, CharacterTextureMaterial.CODEC); + + DynamicRegistries.registerSynced(SPIDER_VARIANTS, SpiderVariant.CODEC); + DynamicRegistries.registerSynced(GREAT_HORN_VARIANTS, GreatHornVariant.CODEC); + } + + public static void prepareBoostrap(RegistryBuilder registryBuilder) { + registryBuilder.addRegistry(RACE, RaceRegistry::bootstrap); + registryBuilder.addRegistry(NPC, NpcRegistry::bootstrap); + registryBuilder.addRegistry(FACTION, FactionRegistry::bootstrap); + registryBuilder.addRegistry(BIOME_EVENT, BiomeEventRegistry::bootstrap); + registryBuilder.addRegistry(STRUCTURE_MANAGER_DATA, StructureManagerDataRegistry::bootstrap); + registryBuilder.addRegistry(TEXTURE_PRESETS, TexturePresetsRegistry::bootstrap); + + registryBuilder.addRegistry(SPIDER_VARIANTS, SpiderVariantRegistry::bootstrap); + registryBuilder.addRegistry(GREAT_HORN_VARIANTS, GreatHornVariantRegistry::bootstrap); + } + + public static void addProviders(FabricDataGenerator.Pack pack) { + pack.addProvider(SpiderVariantsProvider::new); + pack.addProvider(RaceProvider::new); + pack.addProvider(TexturePresetsProvider::new); + pack.addProvider(NpcProvider::new); + pack.addProvider(FactionProvider::new); + pack.addProvider(StructureDataProvider::new); + pack.addProvider(BiomeEventProvider::new); + pack.addProvider(GreatHornVariantsProvider::new); + } +} \ No newline at end of file diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/RegistriesME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/RegistriesME.java index 63b2c93daa..3a787c76d1 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/RegistriesME.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/RegistriesME.java @@ -65,18 +65,17 @@ public static void registerRegistryAliases() { File aliases = new File("aliases.txt"); if (aliases.createNewFile()) { - System.out.println("File created: " + aliases.getName()); + MiddleEarth.LOGGER.logInfoMsg("File created: " + aliases.getName()); } else { - System.out.println("File already exists."); + MiddleEarth.LOGGER.logWarn("File already exists."); } } catch (IOException e) { - System.out.println("An error occurred."); - e.printStackTrace(); + MiddleEarth.LOGGER.logError("An error occurred.", e); } try { FileWriter myWriter = new FileWriter("aliases.txt"); - for (RegistryAliases.Alias alias: RegistryAliases.aliases) { + for (RegistryAliasesME.Alias alias: RegistryAliasesME.aliases) { String name = alias.name(); for (Map.Entry map : specialAliases.entrySet()) { name = name.replaceAll(map.getKey(), map.getValue()); @@ -85,19 +84,18 @@ public static void registerRegistryAliases() { myWriter.write(alias.registry().getKey().getValue().getPath() + ": " + Identifier.of(MiddleEarth.OLD_MOD_ID, name) + " -> " + Identifier.of(MiddleEarth.MOD_ID, alias.name()) + "\r\n"); } - for (RegistryAliases.ManualAlias alias: RegistryAliases.manualAliases) { + for (RegistryAliasesME.ManualAlias alias: RegistryAliasesME.manualAliases) { alias.registry().addAlias(Identifier.of(MiddleEarth.OLD_MOD_ID, alias.oldName()), Identifier.of(MiddleEarth.MOD_ID, alias.newName())); myWriter.write(alias.registry().getKey().getValue().getPath() + ": " + Identifier.of(MiddleEarth.OLD_MOD_ID, alias.oldName()) + " -> " + Identifier.of(MiddleEarth.MOD_ID, alias.newName()) + "\r\n"); } myWriter.close(); - System.out.println("Successfully wrote to the file."); + MiddleEarth.LOGGER.logTrace("Successfully wrote to the file."); } catch (IOException e) { - System.out.println("An error occurred."); - e.printStackTrace(); + MiddleEarth.LOGGER.logError("RegistriesME :: An error occurred.", e); } } else { - for (RegistryAliases.Alias alias: RegistryAliases.aliases) { + for (RegistryAliasesME.Alias alias: RegistryAliasesME.aliases) { String name = alias.name(); for (Map.Entry map : specialAliases.entrySet()) { name = name.replaceAll(map.getKey(), map.getValue()); @@ -105,7 +103,7 @@ public static void registerRegistryAliases() { alias.registry().addAlias(Identifier.of(MiddleEarth.OLD_MOD_ID, name), Identifier.of(MiddleEarth.MOD_ID, alias.name())); } - for (RegistryAliases.ManualAlias alias: RegistryAliases.manualAliases) { + for (RegistryAliasesME.ManualAlias alias: RegistryAliasesME.manualAliases) { alias.registry().addAlias(Identifier.of(MiddleEarth.OLD_MOD_ID, alias.oldName()), Identifier.of(MiddleEarth.MOD_ID, alias.newName())); } } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/RegistryAliases.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/RegistryAliasesME.java similarity index 99% rename from middle-earth/src/main/java/net/sevenstars/middleearth/registries/RegistryAliases.java rename to middle-earth/src/main/java/net/sevenstars/middleearth/registries/RegistryAliasesME.java index 41ddb2d7fa..44dc333f0b 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/RegistryAliases.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/RegistryAliasesME.java @@ -6,7 +6,7 @@ import java.util.ArrayList; import java.util.List; -public class RegistryAliases { +public class RegistryAliasesME { public record Alias(Registry registry, String name) {} public record ManualAlias(Registry registry, String oldName, String newName) {} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/StructureManagerDataRegistryME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/StructureManagerDataRegistryME.java new file mode 100644 index 0000000000..2edb6f16a5 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/StructureManagerDataRegistryME.java @@ -0,0 +1,137 @@ +package net.sevenstars.middleearth.registries; + +import net.minecraft.entity.EntityType; +import net.minecraft.registry.Registerable; +import net.minecraft.registry.RegistryEntryLookup; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.entry.RegistryEntry; +import net.minecraft.util.Identifier; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.datageneration.content.TranslationEntries; +import net.sevenstars.middleearth.entity.EntitiesME; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.registries.content.npcs.NpcRegistry; +import net.sevenstars.middleearth.registries.content.npcs.pools.*; +import net.sevenstars.middleearth.resources.datas.structure_manager_datas.SpawnNestNodeData; +import net.sevenstars.middleearth.resources.datas.structure_manager_datas.StructureManagerData; +import net.sevenstars.middleearth.resources.datas.structure_manager_datas.StructureSpawnNestPool; + +import java.util.List; +import java.util.Optional; + +public class StructureManagerDataRegistryME { + public final static StructureManagerData GONDOR_GENERIC_NESTS; + public final static StructureManagerData EREBOR_GENERIC_NESTS; + public final static StructureManagerData DALE_KEEP_NESTS; + + public static void bootstrap(Registerable context) { + RegistryEntryLookup structureDataRegistryEntryLookup = context.getRegistryLookup(DynamicRegistriesME.STRUCTURE_MANAGER_DATA); + // [TEMPLATE] + register(context, structureDataRegistryEntryLookup, GONDOR_GENERIC_NESTS); + register(context, structureDataRegistryEntryLookup, EREBOR_GENERIC_NESTS); + register(context, structureDataRegistryEntryLookup, DALE_KEEP_NESTS); + } + + private static StructureManagerData register(Registerable context, RegistryEntryLookup registryEntryLookup, StructureManagerData structureManagerData) { + RegistryKey registryKey = RegistryKey.of(DynamicRegistriesME.STRUCTURE_MANAGER_DATA, structureManagerData.getId()); + String name = registryKey.getValue().getPath(); + RegistryKey structureDataKey = RegistryKey.of(DynamicRegistriesME.STRUCTURE_MANAGER_DATA, Identifier.of(MiddleEarth.MOD_ID,name)); + + Optional> optionalStructureDataReference = registryEntryLookup.getOptional(registryKey); + optionalStructureDataReference.ifPresent(biomeReference -> context.register(structureDataKey, structureManagerData)); + + TranslationEntries.structureManagerEntries.add(structureManagerData.getId().getPath()); + + return structureManagerData; + } + + static { + GONDOR_GENERIC_NESTS = new StructureManagerData(Identifier.of(MiddleEarth.MOD_ID, "gondor_generic_nests"), List.of( + new SpawnNestNodeData(MiddleEarth.fetchId("gondor_generic_nests.captain_nest"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 1).SetNpcData(FactionRegistry.GONDOR, GondorianNpcDataPool.LEADER.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 2).SetNpcData(FactionRegistry.GONDOR, GondorianNpcDataPool.KNIGHT.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 3).SetNpcData(FactionRegistry.GONDOR, GondorianNpcDataPool.VETERAN.getId()).SetFixAmount(1) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("gondor_generic_nests.barrack_nest"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 3).SetNpcData(FactionRegistry.GONDOR, GondorianNpcDataPool.SOLDIER.getId()).SetRangeAmount(2,3), + new StructureSpawnNestPool(EntitiesME.NPC, 2).SetNpcData(FactionRegistry.GONDOR, GondorianNpcDataPool.VETERAN.getId()).SetRangeAmount(2,3), + new StructureSpawnNestPool(EntitiesME.NPC, 5).SetNpcData(FactionRegistry.GONDOR, GondorianNpcDataPool.MILITIA.getId()).SetRangeAmount(2,4) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("gondor_generic_nests.worker_nest"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 2).SetNpcData(FactionRegistry.GONDOR, NpcRegistry.DALE_PEASANT.getValue()).SetRangeAmount(1,3) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("gondor_generic_nests.prisoner_nest"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 5).SetNpcData(FactionRegistry.MORDOR, MordorNpcDataPool.SNAGA.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 3).SetNpcData(FactionRegistry.LONGBEARDS_EREBOR, NpcRegistry.DALE_PEASANT.getValue()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 1).SetNpcData(FactionRegistry.LOTHLORIEN, NpcRegistry.DALE_PEASANT.getValue()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 3).SetNpcData(FactionRegistry.BRIGAND, NpcRegistry.DALE_PEASANT.getValue()).SetFixAmount(1) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("gondor_generic_nests.stable_nest"), 1500, List.of( + new StructureSpawnNestPool(EntityType.HORSE, 5).SetFixAmount(1), + new StructureSpawnNestPool(EntityType.DONKEY, 2).SetFixAmount(1), + new StructureSpawnNestPool(EntityType.PIG, 1).SetFixAmount(1) + )) + )); + + EREBOR_GENERIC_NESTS = new StructureManagerData(Identifier.of(MiddleEarth.MOD_ID, "erebor_generic_nests"), List.of( + new SpawnNestNodeData(MiddleEarth.fetchId("erebor_generic_nests.captain_nest"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 1).SetNpcData(FactionRegistry.LONGBEARDS_EREBOR, EreborNpcDataPool.LEADER.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 2).SetNpcData(FactionRegistry.LONGBEARDS_EREBOR, EreborNpcDataPool.GATEWARDEN.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 3).SetNpcData(FactionRegistry.LONGBEARDS_EREBOR, EreborNpcDataPool.ELITE.getId()).SetFixAmount(1) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("erebor_generic_nests.barrack_nest"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 3).SetNpcData(FactionRegistry.LONGBEARDS_EREBOR, EreborNpcDataPool.SOLDIER.getId()).SetRangeAmount(2,3), + new StructureSpawnNestPool(EntitiesME.NPC, 2).SetNpcData(FactionRegistry.LONGBEARDS_EREBOR, EreborNpcDataPool.ARCHER.getId()).SetRangeAmount(2,3), + new StructureSpawnNestPool(EntitiesME.NPC, 5).SetNpcData(FactionRegistry.LONGBEARDS_EREBOR, EreborNpcDataPool.MILITIA.getId()).SetRangeAmount(2,4) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("erebor_generic_nests.worker_nest"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 2).SetNpcData(FactionRegistry.LONGBEARDS_EREBOR, EreborNpcDataPool.MINER.getId()).SetRangeAmount(1,3), + new StructureSpawnNestPool(EntitiesME.NPC, 3).SetNpcData(FactionRegistry.LONGBEARDS_EREBOR, EreborNpcDataPool.PEASANT.getId()).SetRangeAmount(1,3) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("erebor_generic_nests.prisoner_nest"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 5).SetNpcData(FactionRegistry.MORDOR, MordorNpcDataPool.SNAGA.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 3).SetNpcData(FactionRegistry.LONGBEARDS_EREBOR, NpcRegistry.DALE_PEASANT.getValue()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 1).SetNpcData(FactionRegistry.LOTHLORIEN, NpcRegistry.DALE_PEASANT.getValue()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 3).SetNpcData(FactionRegistry.BRIGAND, NpcRegistry.DALE_PEASANT.getValue()).SetFixAmount(1) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("erebor_generic_nests.stable_nest"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.BROADHOOF_GOAT, 5).SetFixAmount(1), + new StructureSpawnNestPool(EntityType.PIG, 3).SetFixAmount(1), + new StructureSpawnNestPool(EntityType.DONKEY, 2).SetFixAmount(1) + )) + )); + + DALE_KEEP_NESTS = new StructureManagerData(Identifier.of(MiddleEarth.MOD_ID, "dale_keep_nests"), List.of( + new SpawnNestNodeData(MiddleEarth.fetchId("dale_keep_nests.captain"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 1).SetNpcData(FactionRegistry.DALE, DalishNpcDataPool.VETERAN.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 2).SetNpcData(FactionRegistry.DALE, DalishNpcDataPool.SERGEANT.getId()).SetFixAmount(1) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("dale_keep_nests.stable_carers"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 2).SetNpcData(FactionRegistry.DALE, DalishNpcDataPool.PEASANT.getId()).SetFixAmount(2) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("dale_keep_nests.stable"), 1500, List.of( + new StructureSpawnNestPool(EntityType.DONKEY, 1).SetFixAmount(1) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("dale_keep_nests.small_prisoner_cell"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 5).SetNpcData(FactionRegistry.DALE, BrigandNpcDataPool.THIEF.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 2).SetNpcData(FactionRegistry.DALE, BrigandNpcDataPool.THUG.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 1).SetNpcData(FactionRegistry.DALE, BrigandNpcDataPool.CHIEFTAIN.getId()).SetFixAmount(1) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("dale_keep_nests.large_prisoner_cell"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 5).SetNpcData(FactionRegistry.DALE, BrigandNpcDataPool.THIEF.getId()).SetRangeAmount(1,3), + new StructureSpawnNestPool(EntitiesME.NPC, 2).SetNpcData(FactionRegistry.DALE, BrigandNpcDataPool.THUG.getId()).SetRangeAmount(1,3), + new StructureSpawnNestPool(EntitiesME.NPC, 1).SetNpcData(FactionRegistry.DALE, BrigandNpcDataPool.CHIEFTAIN.getId()).SetFixAmount(1) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("dale_keep_nests.soldier"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 4).SetNpcData(FactionRegistry.DALE, DalishNpcDataPool.SOLDIER.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 3).SetNpcData(FactionRegistry.DALE, DalishNpcDataPool.ARCHER.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 2).SetNpcData(FactionRegistry.DALE, DalishNpcDataPool.MILITIA.getId()).SetFixAmount(1) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("dale_keep_nests.elite"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 4).SetNpcData(FactionRegistry.DALE, DalishNpcDataPool.KNIGHT.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 3).SetNpcData(FactionRegistry.DALE, DalishNpcDataPool.VETERAN.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 2).SetNpcData(FactionRegistry.DALE, DalishNpcDataPool.SOLDIER.getId()).SetFixAmount(1) + )) + )); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/biomevents/BiomeEventRegistry.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/biomevents/BiomeEventRegistry.java new file mode 100644 index 0000000000..1d454e713b --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/biomevents/BiomeEventRegistry.java @@ -0,0 +1,33 @@ +package net.sevenstars.middleearth.registries.content.biomevents; + +import net.minecraft.registry.Registerable; +import net.minecraft.registry.Registry; +import net.minecraft.registry.RegistryEntryLookup; +import net.minecraft.registry.RegistryKey; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; +import net.sevenstars.middleearth.registries.content.biomevents.pools.GenericHostilesBiomeEventPool; +import net.sevenstars.middleearth.resources.datas.biome_events.BiomeEventData; +import net.sevenstars.middleearth.world.biomes.MEBiomeKeys; + +public class BiomeEventRegistry { + private static final RegistryKey> BIOME_EVENT_KEY = DynamicRegistriesME.BIOME_EVENT; + + public final static RegistryKey DEFAULT = DynamicRegistriesME.of(BIOME_EVENT_KEY, MiddleEarth.of("default")); + + public final static RegistryKey CAVE = DynamicRegistriesME.of(BIOME_EVENT_KEY, MEBiomeKeys.BASIC_CAVE.getValue()); + + + public static void bootstrap(Registerable context) { + RegistryEntryLookup registryEntryLookup = context.getRegistryLookup(BIOME_EVENT_KEY); + + register(context, registryEntryLookup, DEFAULT, GenericHostilesBiomeEventPool.DEFAULT); + register(context, registryEntryLookup, CAVE, GenericHostilesBiomeEventPool.CAVE); + } + + private static void register(Registerable context, RegistryEntryLookup registryEntryLookup, RegistryKey registryKey, BiomeEventData element){ + DynamicRegistriesME.register(context, registryEntryLookup, registryKey, element); + // [LANG datagen] + // None + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/biomevents/pools/GenericHostilesBiomeEventPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/biomevents/pools/GenericHostilesBiomeEventPool.java new file mode 100644 index 0000000000..37c262c641 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/biomevents/pools/GenericHostilesBiomeEventPool.java @@ -0,0 +1,33 @@ +package net.sevenstars.middleearth.registries.content.biomevents.pools; + +import net.minecraft.entity.EntityType; +import net.sevenstars.middleearth.entity.EntitiesME; +import net.sevenstars.middleearth.registries.content.npcs.pools.BrigandNpcDataPool; +import net.sevenstars.middleearth.registries.content.npcs.pools.WildGoblinNpcDataPool; +import net.sevenstars.middleearth.resources.datas.biome_events.BiomeEventData; +import net.sevenstars.middleearth.resources.datas.biome_events.BiomeNpcSpawningData; + +import java.util.List; + +public class GenericHostilesBiomeEventPool { + public final static BiomeEventData CAVE; + public final static BiomeEventData DEFAULT; + + static { + DEFAULT = new BiomeEventData(List.of( + new BiomeNpcSpawningData(BrigandNpcDataPool.CHIEFTAIN).withMount(EntityType.HORSE), + new BiomeNpcSpawningData(BrigandNpcDataPool.CHIEFTAIN).withWeight(2), + new BiomeNpcSpawningData(BrigandNpcDataPool.MERCENARY).withWeight(3), + new BiomeNpcSpawningData(BrigandNpcDataPool.THIEF).withWeight(5), + new BiomeNpcSpawningData(BrigandNpcDataPool.THUG).withWeight(5) + )); + + CAVE = new BiomeEventData(List.of( + new BiomeNpcSpawningData(WildGoblinNpcDataPool.GATHERER), + new BiomeNpcSpawningData(WildGoblinNpcDataPool.SCOUT), + new BiomeNpcSpawningData(WildGoblinNpcDataPool.WARRIOR), + new BiomeNpcSpawningData(WildGoblinNpcDataPool.RIDER).withMount(EntitiesME.CAVE_TROLL), + new BiomeNpcSpawningData(WildGoblinNpcDataPool.BRUTE) + )); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/FactionRegistry.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/FactionRegistry.java new file mode 100644 index 0000000000..7f7e8877a1 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/FactionRegistry.java @@ -0,0 +1,59 @@ +package net.sevenstars.middleearth.registries.content.factions; + +import net.minecraft.registry.Registerable; +import net.minecraft.registry.Registry; +import net.minecraft.registry.RegistryEntryLookup; +import net.minecraft.registry.RegistryKey; +import net.minecraft.util.Identifier; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.datageneration.content.TranslationEntries; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; +import net.sevenstars.middleearth.registries.content.factions.pools.*; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.factions.data.SpawnDataHandler; + +public class FactionRegistry { + private static final RegistryKey> FACTION_KEY = DynamicRegistriesME.FACTION; + + public final static RegistryKey GONDOR = DynamicRegistriesME.of(FACTION_KEY, MiddleEarth.of("gondor")); + public final static RegistryKey ROHAN = DynamicRegistriesME.of(FACTION_KEY, MiddleEarth.of("rohan")); + public final static RegistryKey DALE = DynamicRegistriesME.of(FACTION_KEY, MiddleEarth.of("dale")); + public final static RegistryKey LONGBEARDS = DynamicRegistriesME.of(FACTION_KEY, MiddleEarth.of("longbeards")); + public final static RegistryKey LONGBEARDS_EREBOR = DynamicRegistriesME.of(FACTION_KEY, MiddleEarth.of(LONGBEARDS.getValue().getPath(), "erebor")); + public final static RegistryKey LOTHLORIEN = DynamicRegistriesME.of(FACTION_KEY, MiddleEarth.of("lothlorien")); + public final static RegistryKey MORDOR = DynamicRegistriesME.of(FACTION_KEY, MiddleEarth.of("mordor")); + public final static RegistryKey HOBGOBLIN_TRIBES = DynamicRegistriesME.of(FACTION_KEY, MiddleEarth.of("hobgoblin_tribes")); + public final static RegistryKey HOBGOBLIN_TRIBES_GUNDABAD = DynamicRegistriesME.of(FACTION_KEY, MiddleEarth.of(HOBGOBLIN_TRIBES.getValue().getPath(), "gundabad")); + public final static RegistryKey ISENGARD = DynamicRegistriesME.of(FACTION_KEY, MiddleEarth.of("isengard")); + public final static RegistryKey SHIRE = DynamicRegistriesME.of(FACTION_KEY, MiddleEarth.of("shire")); + public final static RegistryKey BRIGAND = DynamicRegistriesME.of(FACTION_KEY, MiddleEarth.of("brigand")); + public final static RegistryKey WILD_GOBLINS = DynamicRegistriesME.of(FACTION_KEY, MiddleEarth.of("wild_goblins")); + + public static void bootstrap(Registerable context) { + RegistryEntryLookup registryEntryLookup = context.getRegistryLookup(FACTION_KEY); + + register(context, registryEntryLookup, GONDOR, GondorFactionPool.GONDOR); + register(context, registryEntryLookup, ROHAN, RohanFactionPool.ROHAN); + register(context, registryEntryLookup, DALE, DaleFactionPool.DALE); + register(context, registryEntryLookup, LONGBEARDS, LongbeardsFactionPool.LONGBEARDS); + register(context, registryEntryLookup, LONGBEARDS_EREBOR, LongbeardsFactionPool.EREBOR); + register(context, registryEntryLookup, LOTHLORIEN, LothlorienFactionPool.LOTHLORIEN); + register(context, registryEntryLookup, MORDOR, MordorFactionPool.MORDOR); + register(context, registryEntryLookup, HOBGOBLIN_TRIBES, HobgoblinTribesFactionPool.HOBGOBLIN_TRIBES); + register(context, registryEntryLookup, HOBGOBLIN_TRIBES_GUNDABAD, HobgoblinTribesFactionPool.GUNDABAD); + register(context, registryEntryLookup, ISENGARD, IsengardFactionPool.ISENGARD); + register(context, registryEntryLookup, SHIRE, ShireFactionPool.SHIRE); + register(context, registryEntryLookup, BRIGAND, BrigandFactionPool.BRIGAND); + register(context, registryEntryLookup, WILD_GOBLINS, WildGoblinsFactionPool.WILD_GOBLIN); + } + + private static void register(Registerable context, RegistryEntryLookup registryEntryLookup, RegistryKey registryKey, Faction element){ + DynamicRegistriesME.register(context, registryEntryLookup, registryKey, element); + // [LANG datagen] + TranslationEntries.factionEntries.add(registryKey.getValue().getPath()); + SpawnDataHandler spawnDataHandler = element.getSpawnData(); + if(spawnDataHandler != null && spawnDataHandler.getAllSpawnIdentifiers() != null) + for(Identifier spawnId : spawnDataHandler.getAllSpawnIdentifiers()) + TranslationEntries.spawnEntries.add(spawnId.getPath()); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/BrigandFactionPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/BrigandFactionPool.java new file mode 100644 index 0000000000..ed0cc3e79d --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/BrigandFactionPool.java @@ -0,0 +1,65 @@ +package net.sevenstars.middleearth.registries.content.factions.pools; + +import net.minecraft.block.entity.BannerPatterns; +import net.minecraft.util.DyeColor; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.resources.datas.common.AffinityLevel; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; +import net.sevenstars.middleearth.resources.datas.common.FactionType; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.factions.data.BannerData; +import net.sevenstars.middleearth.resources.datas.common.NpcRank; +import net.sevenstars.middleearth.registries.content.npcs.pools.BrigandNpcDataPool; +import net.sevenstars.middleearth.resources.datas.factions.data.InitialDiplomacy; + +import java.util.HashMap; +import java.util.List; + +public class BrigandFactionPool { + public final static Faction BRIGAND; + + static { + BRIGAND = new Faction(FactionRegistry.BRIGAND, false, DispositionType.NEUTRAL, FactionType.FACTION, null,null, + new HashMap<>(){{ + put(NpcRank.CIVILIAN, List.of( + BrigandNpcDataPool.THUG + )); + put(NpcRank.MILITIA, List.of( + BrigandNpcDataPool.THUG, + BrigandNpcDataPool.THIEF + )); + put(NpcRank.SOLDIER, List.of( + BrigandNpcDataPool.MERCENARY + )); + put(NpcRank.KNIGHT, List.of( + BrigandNpcDataPool.CHIEFTAIN + )); + put(NpcRank.VETERAN, List.of( + BrigandNpcDataPool.CHIEFTAIN + )); + put(NpcRank.LEADER, List.of( + BrigandNpcDataPool.CHIEFTAIN + )); + }}, + new BannerData(DyeColor.BLACK, List.of( + new BannerData.BannerPatternWithColor(BannerPatterns.GRADIENT_UP, DyeColor.GRAY), + new BannerData.BannerPatternWithColor(BannerPatterns.CROSS, DyeColor.RED), + new BannerData.BannerPatternWithColor(BannerPatterns.SKULL, DyeColor.WHITE) + )), + null , List.of(), List.of(), + List.of( + new InitialDiplomacy(FactionRegistry.LOTHLORIEN, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.GONDOR, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.ROHAN, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.SHIRE, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.LONGBEARDS, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.DALE, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.HOBGOBLIN_TRIBES, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.MORDOR, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.ISENGARD, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.WILD_GOBLINS, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.BRIGAND, AffinityLevel.ALLY) + ) + ); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/DaleFactionPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/DaleFactionPool.java new file mode 100644 index 0000000000..e002d444ba --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/DaleFactionPool.java @@ -0,0 +1,77 @@ +package net.sevenstars.middleearth.registries.content.factions.pools; + +import net.minecraft.block.entity.BannerPatterns; +import net.minecraft.util.DyeColor; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.item.utils.BannerPatternsME; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.resources.datas.common.AffinityLevel; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; +import net.sevenstars.middleearth.resources.datas.common.FactionType; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.factions.data.BannerData; +import net.sevenstars.middleearth.resources.datas.factions.data.InitialDiplomacy; +import net.sevenstars.middleearth.resources.datas.factions.data.SpawnData; +import net.sevenstars.middleearth.resources.datas.factions.data.SpawnDataHandler; +import net.sevenstars.middleearth.resources.datas.common.NpcRank; +import net.sevenstars.middleearth.registries.content.npcs.pools.DalishNpcDataPool; +import net.sevenstars.api.utils.IdentifierUtil; +import org.joml.Vector2d; + +import java.util.HashMap; +import java.util.List; + +public class DaleFactionPool { + public final static Faction DALE; + private final static String FACTION_PATH = FactionRegistry.DALE.getValue().getPath(); + + static { + DALE = new Faction(FactionRegistry.DALE, true, DispositionType.GOOD, FactionType.FACTION, null,null, + new HashMap<>(){{ + put(NpcRank.CIVILIAN, List.of( + DalishNpcDataPool.PEASANT + )); + put(NpcRank.MILITIA, List.of( + DalishNpcDataPool.MILITIA + )); + put(NpcRank.SOLDIER, List.of( + DalishNpcDataPool.SOLDIER, + DalishNpcDataPool.ARCHER + )); + put(NpcRank.KNIGHT, List.of( + DalishNpcDataPool.KNIGHT, + DalishNpcDataPool.ELITE_ARCHER + )); + put(NpcRank.VETERAN, List.of( + DalishNpcDataPool.VETERAN + )); + put(NpcRank.LEADER, List.of( + DalishNpcDataPool.SERGEANT + )); + }}, + new BannerData(DyeColor.WHITE, List.of( + new BannerData.BannerPatternWithColor(BannerPatternsME.CLOTH, DyeColor.BLUE), + new BannerData.BannerPatternWithColor(BannerPatterns.GRADIENT, DyeColor.BLUE), + new BannerData.BannerPatternWithColor(BannerPatternsME.BELL, DyeColor.YELLOW) + )), + new SpawnDataHandler(List.of( + new SpawnData(MiddleEarth.of(FACTION_PATH, "capital"), new Vector2d(2021, 727)), + new SpawnData(MiddleEarth.of(FACTION_PATH, "esgaroth"), new Vector2d(2007, 757)) + )), List.of(), List.of(), + List.of( + new InitialDiplomacy(FactionRegistry.LOTHLORIEN, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.GONDOR, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.ROHAN, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.SHIRE, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.LONGBEARDS, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.DALE, AffinityLevel.ALLY), + new InitialDiplomacy(FactionRegistry.HOBGOBLIN_TRIBES, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.MORDOR, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.ISENGARD, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.WILD_GOBLINS, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.BRIGAND, AffinityLevel.HOSTILE) + ) + ); + } + +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/GondorFactionPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/GondorFactionPool.java new file mode 100644 index 0000000000..5fc8554bd5 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/GondorFactionPool.java @@ -0,0 +1,84 @@ +package net.sevenstars.middleearth.registries.content.factions.pools; + +import net.minecraft.block.entity.BannerPatterns; +import net.minecraft.util.DyeColor; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.item.utils.BannerPatternsME; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.registries.content.npcs.pools.GondorianNpcDataPool; +import net.sevenstars.middleearth.resources.datas.common.AffinityLevel; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; +import net.sevenstars.middleearth.resources.datas.common.FactionType; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.factions.data.BannerData; +import net.sevenstars.middleearth.resources.datas.factions.data.InitialDiplomacy; +import net.sevenstars.middleearth.resources.datas.factions.data.SpawnData; +import net.sevenstars.middleearth.resources.datas.factions.data.SpawnDataHandler; +import net.sevenstars.middleearth.resources.datas.common.NpcRank; +import net.sevenstars.api.utils.IdentifierUtil; +import org.joml.Vector2d; + +import java.util.HashMap; +import java.util.List; + +public class GondorFactionPool { + public final static Faction GONDOR; + private final static String FACTION_PATH = FactionRegistry.GONDOR.getValue().getPath(); + + static { + GONDOR = new Faction(FactionRegistry.GONDOR, true, DispositionType.GOOD, FactionType.FACTION, null, null, + new HashMap<>(){{ + put(NpcRank.CIVILIAN, List.of( + GondorianNpcDataPool.PEASANT + )); + put(NpcRank.MILITIA, List.of( + GondorianNpcDataPool.MILITIA + )); + put(NpcRank.SOLDIER, List.of( + GondorianNpcDataPool.SOLDIER + )); + put(NpcRank.KNIGHT, List.of( + GondorianNpcDataPool.KNIGHT + )); + put(NpcRank.VETERAN, List.of( + GondorianNpcDataPool.VETERAN, + GondorianNpcDataPool.KING_GUARD, + GondorianNpcDataPool.CITADEL_GUARD, + GondorianNpcDataPool.FOUNTAIN_GUARD + )); + put(NpcRank.LEADER, List.of( + GondorianNpcDataPool.LEADER + )); + }}, + new BannerData(DyeColor.WHITE, List.of( + new BannerData.BannerPatternWithColor(BannerPatternsME.CLOTH, DyeColor.GRAY), + new BannerData.BannerPatternWithColor(BannerPatterns.GRADIENT, DyeColor.BLACK), + new BannerData.BannerPatternWithColor(BannerPatternsME.TREE, DyeColor.WHITE) + )), + new SpawnDataHandler(List.of( + new SpawnData(MiddleEarth.of("gondor", "minas_tirith"), new Vector2d(1945, 1785)), + new SpawnData(MiddleEarth.of("gondor", "anorien"), new Vector2d(1930, 1735)), + new SpawnData(MiddleEarth.of("gondor", "ithilien"), new Vector2d(1975, 1700)), // Henneth Annun + new SpawnData(MiddleEarth.of("gondor", "lossarnach"), new Vector2d(1895, 1792)), // Erui Source + new SpawnData(MiddleEarth.of("gondor", "pelargir"), new Vector2d(1875, 1960)), + new SpawnData(MiddleEarth.of("gondor", "lamedon"), new Vector2d(1625, 1800)), // Linhir + new SpawnData(MiddleEarth.of("gondor", "lebennin"), new Vector2d(1715, 1955)), // Linhir + new SpawnData(MiddleEarth.of("gondor", "ringlo_vale"), new Vector2d(1530, 1730)), // Calembel + new SpawnData(MiddleEarth.of("gondor", "dol_amroth"), new Vector2d(1500, 1930)) + )), List.of(), List.of(), + List.of( + new InitialDiplomacy(FactionRegistry.LOTHLORIEN, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.GONDOR, AffinityLevel.ALLY), + new InitialDiplomacy(FactionRegistry.ROHAN, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.SHIRE, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.LONGBEARDS, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.DALE, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.HOBGOBLIN_TRIBES, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.MORDOR, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.ISENGARD, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.WILD_GOBLINS, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.BRIGAND, AffinityLevel.HOSTILE) + ) + ); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/HobgoblinTribesFactionPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/HobgoblinTribesFactionPool.java new file mode 100644 index 0000000000..bd59267ef4 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/HobgoblinTribesFactionPool.java @@ -0,0 +1,84 @@ +package net.sevenstars.middleearth.registries.content.factions.pools; + +import net.minecraft.block.entity.BannerPatterns; +import net.minecraft.util.DyeColor; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.item.utils.BannerPatternsME; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.registries.content.npcs.pools.GundabadNpcDataPool; +import net.sevenstars.middleearth.resources.datas.common.AffinityLevel; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; +import net.sevenstars.middleearth.resources.datas.common.FactionType; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.factions.data.BannerData; +import net.sevenstars.middleearth.resources.datas.factions.data.InitialDiplomacy; +import net.sevenstars.middleearth.resources.datas.factions.data.SpawnData; +import net.sevenstars.middleearth.resources.datas.factions.data.SpawnDataHandler; +import net.sevenstars.middleearth.resources.datas.common.NpcRank; +import net.sevenstars.api.utils.IdentifierUtil; +import org.joml.Vector2d; + +import java.util.HashMap; +import java.util.List; + +public class HobgoblinTribesFactionPool { + public final static Faction HOBGOBLIN_TRIBES; + public final static Faction GUNDABAD; + private final static String FACTION_PATH = FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue().getPath(); + + static { + HOBGOBLIN_TRIBES = new Faction(FactionRegistry.HOBGOBLIN_TRIBES, true, DispositionType.EVIL, FactionType.FACTION, null, + List.of(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD.getValue()), + null, null, null, List.of(), List.of(), List.of()); + + GUNDABAD = new Faction(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD, true, DispositionType.EVIL, FactionType.SUBFACTION, HOBGOBLIN_TRIBES.getId(),null, + new HashMap<>(){{ + put(NpcRank.CIVILIAN, List.of( + GundabadNpcDataPool.SNAGA + )); + put(NpcRank.MILITIA, List.of( + GundabadNpcDataPool.MILITIA + )); + put(NpcRank.SOLDIER, List.of( + GundabadNpcDataPool.SCOUT + )); + put(NpcRank.KNIGHT, List.of( + GundabadNpcDataPool.WARRIOR + )); + put(NpcRank.VETERAN, List.of( + GundabadNpcDataPool.VETERAN + )); + put(NpcRank.LEADER, List.of( + GundabadNpcDataPool.LEADER + )); + }}, + new BannerData(DyeColor.WHITE, List.of( + new BannerData.BannerPatternWithColor(BannerPatternsME.CLOTH, DyeColor.BROWN), + new BannerData.BannerPatternWithColor(BannerPatterns.GRADIENT, DyeColor.BLACK), + new BannerData.BannerPatternWithColor(BannerPatterns.TRIANGLE_BOTTOM, DyeColor.LIGHT_GRAY), + new BannerData.BannerPatternWithColor(BannerPatterns.TRIANGLES_BOTTOM, DyeColor.GRAY), + new BannerData.BannerPatternWithColor(BannerPatternsME.EVIL_EYE, DyeColor.RED) + )), + new SpawnDataHandler(List.of( + new SpawnData(MiddleEarth.of(HOBGOBLIN_TRIBES.getName(), "gundabad", "gundabad"), new Vector2d(1595, 640)), + new SpawnData(MiddleEarth.of(HOBGOBLIN_TRIBES.getName(), "gundabad", "grey_mountains"), new Vector2d(1652, 640)), + new SpawnData(MiddleEarth.of(HOBGOBLIN_TRIBES.getName(), "gundabad", "goblin_town"), new Vector2d(1581.5, 874.5)), + new SpawnData(MiddleEarth.of(HOBGOBLIN_TRIBES.getName(), "gundabad", "moria"), new Vector2d(1521, 1138)) + )), List.of(), List.of(), + List.of( + new InitialDiplomacy(FactionRegistry.LOTHLORIEN, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.GONDOR, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.ROHAN, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.SHIRE, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.LONGBEARDS, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.DALE, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.HOBGOBLIN_TRIBES, AffinityLevel.ALLY), + new InitialDiplomacy(FactionRegistry.MORDOR, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.ISENGARD, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.WILD_GOBLINS, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.BRIGAND, AffinityLevel.HOSTILE) + ) + ); + + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/IsengardFactionPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/IsengardFactionPool.java new file mode 100644 index 0000000000..8acf7386bf --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/IsengardFactionPool.java @@ -0,0 +1,74 @@ +package net.sevenstars.middleearth.registries.content.factions.pools; + +import net.minecraft.block.entity.BannerPatterns; +import net.minecraft.util.DyeColor; +import net.minecraft.util.Identifier; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.item.utils.BannerPatternsME; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.resources.datas.common.AffinityLevel; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; +import net.sevenstars.middleearth.resources.datas.common.FactionType; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.factions.data.BannerData; +import net.sevenstars.middleearth.resources.datas.factions.data.InitialDiplomacy; +import net.sevenstars.middleearth.resources.datas.factions.data.SpawnData; +import net.sevenstars.middleearth.resources.datas.factions.data.SpawnDataHandler; +import net.sevenstars.middleearth.resources.datas.common.NpcRank; +import net.sevenstars.middleearth.registries.content.npcs.pools.IsengardNpcDataPool; +import org.joml.Vector2d; + +import java.util.HashMap; +import java.util.List; + +public class IsengardFactionPool { + public final static Faction ISENGARD; + static { + ISENGARD = new Faction(FactionRegistry.ISENGARD, true, DispositionType.EVIL, FactionType.FACTION, null,null, + new HashMap<>(){{ + put(NpcRank.CIVILIAN, List.of( + IsengardNpcDataPool.SNAGA + )); + put(NpcRank.MILITIA, List.of( + IsengardNpcDataPool.WARRIOR + )); + put(NpcRank.SOLDIER, List.of( + IsengardNpcDataPool.URUK_HAI_SOLDIER, + IsengardNpcDataPool.URUK_HAI_SCOUT + )); + put(NpcRank.KNIGHT, List.of( + IsengardNpcDataPool.URUK_HAI_BERSERKER, + IsengardNpcDataPool.ORTHANC_GUARD + )); + put(NpcRank.VETERAN, List.of( + IsengardNpcDataPool.URUK_HAI_VETERAN + )); + put(NpcRank.LEADER, List.of( + IsengardNpcDataPool.URUK_HAI_LEADER + )); + }}, + new BannerData(DyeColor.WHITE, List.of( + new BannerData.BannerPatternWithColor(BannerPatternsME.CLOTH, DyeColor.GRAY), + new BannerData.BannerPatternWithColor(BannerPatterns.GRADIENT, DyeColor.BLACK), + new BannerData.BannerPatternWithColor(BannerPatternsME.HAND, DyeColor.WHITE) + )), + new SpawnDataHandler(List.of( + new SpawnData(MiddleEarth.of("isengard", "orthanc"), new Vector2d(1402, 1467)) + )), List.of(), List.of(), + List.of( + new InitialDiplomacy(FactionRegistry.LOTHLORIEN, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.GONDOR, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.ROHAN, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.SHIRE, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.LONGBEARDS, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.DALE, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.HOBGOBLIN_TRIBES, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.MORDOR, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.ISENGARD, AffinityLevel.ALLY), + new InitialDiplomacy(FactionRegistry.WILD_GOBLINS, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.BRIGAND, AffinityLevel.HOSTILE) + ) + ); + } + +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/LongbeardsFactionPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/LongbeardsFactionPool.java new file mode 100644 index 0000000000..22eb34edc4 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/LongbeardsFactionPool.java @@ -0,0 +1,82 @@ +package net.sevenstars.middleearth.registries.content.factions.pools; + +import net.minecraft.block.entity.BannerPatterns; +import net.minecraft.util.DyeColor; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.item.utils.BannerPatternsME; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.resources.datas.common.AffinityLevel; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; +import net.sevenstars.middleearth.resources.datas.common.FactionType; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.factions.data.BannerData; +import net.sevenstars.middleearth.resources.datas.factions.data.InitialDiplomacy; +import net.sevenstars.middleearth.resources.datas.factions.data.SpawnData; +import net.sevenstars.middleearth.resources.datas.factions.data.SpawnDataHandler; +import net.sevenstars.middleearth.resources.datas.common.NpcRank; +import net.sevenstars.middleearth.registries.content.npcs.pools.EreborNpcDataPool; +import org.joml.Vector2d; + +import java.util.HashMap; +import java.util.List; + +public class LongbeardsFactionPool { + public final static Faction LONGBEARDS; + public final static Faction EREBOR; + + static { + LONGBEARDS = new Faction(FactionRegistry.LONGBEARDS, true, DispositionType.GOOD, FactionType.FACTION, null, + List.of(FactionRegistry.LONGBEARDS_EREBOR.getValue()), + null, null, null, List.of(), List.of(), List.of()); + + EREBOR = new Faction(FactionRegistry.LONGBEARDS_EREBOR, true, DispositionType.GOOD, FactionType.SUBFACTION, LONGBEARDS.getId(),null, + new HashMap<>(){{ + put(NpcRank.CIVILIAN, List.of( + EreborNpcDataPool.PEASANT, + EreborNpcDataPool.MINER + )); + put(NpcRank.MILITIA, List.of( + EreborNpcDataPool.MILITIA + )); + put(NpcRank.SOLDIER, List.of( + EreborNpcDataPool.SOLDIER, + EreborNpcDataPool.ARCHER + )); + put(NpcRank.KNIGHT, List.of( + EreborNpcDataPool.ELITE + )); + put(NpcRank.VETERAN, List.of( + EreborNpcDataPool.VETERAN, + EreborNpcDataPool.GATEWARDEN + )); + put(NpcRank.LEADER, List.of( + EreborNpcDataPool.LEADER + )); + }}, + new BannerData(DyeColor.WHITE, List.of( + new BannerData.BannerPatternWithColor(BannerPatternsME.CLOTH, DyeColor.BLUE), + new BannerData.BannerPatternWithColor(BannerPatterns.GRADIENT_UP, DyeColor.GRAY), + new BannerData.BannerPatternWithColor(BannerPatternsME.DWARF_CROWN, DyeColor.WHITE) + )), + new SpawnDataHandler(List.of( + new SpawnData(MiddleEarth.of(LONGBEARDS.getName(), "erebor", "ravenhill"), new Vector2d(2017, 722)), + new SpawnData(MiddleEarth.of(LONGBEARDS.getName(), "erebor", "iron_hills"), new Vector2d(2355, 725)), + new SpawnData(MiddleEarth.of(LONGBEARDS.getName(), "erebor", "iron_hills_spring"), new Vector2d(2262, 782)) + )), List.of(), List.of(), + List.of( + new InitialDiplomacy(FactionRegistry.LOTHLORIEN, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.GONDOR, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.ROHAN, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.SHIRE, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.LONGBEARDS, AffinityLevel.ALLY), + new InitialDiplomacy(FactionRegistry.DALE, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.HOBGOBLIN_TRIBES, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.MORDOR, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.ISENGARD, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.WILD_GOBLINS, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.BRIGAND, AffinityLevel.HOSTILE) + ) + ); + + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/LothlorienFactionPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/LothlorienFactionPool.java new file mode 100644 index 0000000000..39a4985c6f --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/LothlorienFactionPool.java @@ -0,0 +1,74 @@ +package net.sevenstars.middleearth.registries.content.factions.pools; + +import net.minecraft.block.entity.BannerPatterns; +import net.minecraft.util.DyeColor; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.item.utils.BannerPatternsME; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.resources.datas.common.AffinityLevel; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; +import net.sevenstars.middleearth.resources.datas.common.FactionType; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.factions.data.BannerData; +import net.sevenstars.middleearth.resources.datas.factions.data.InitialDiplomacy; +import net.sevenstars.middleearth.resources.datas.factions.data.SpawnData; +import net.sevenstars.middleearth.resources.datas.factions.data.SpawnDataHandler; +import net.sevenstars.middleearth.resources.datas.common.NpcRank; +import net.sevenstars.middleearth.registries.content.npcs.pools.LorienNpcDataPool; +import net.sevenstars.api.utils.IdentifierUtil; +import org.joml.Vector2d; + +import java.util.HashMap; +import java.util.List; + +public class LothlorienFactionPool { + public final static Faction LOTHLORIEN; + private final static String FACTION_PATH = FactionRegistry.LOTHLORIEN.getValue().getPath(); + + static { + LOTHLORIEN = new Faction(FactionRegistry.LOTHLORIEN, true, DispositionType.GOOD, FactionType.FACTION, null, null, + new HashMap<>(){{ + put(NpcRank.CIVILIAN, List.of( + LorienNpcDataPool.SENTINEL + )); + put(NpcRank.MILITIA, List.of( + LorienNpcDataPool.RANGER + )); + put(NpcRank.SOLDIER, List.of( + LorienNpcDataPool.WARRIOR + )); + put(NpcRank.KNIGHT, List.of( + LorienNpcDataPool.KNIGHT + )); + put(NpcRank.VETERAN, List.of( + LorienNpcDataPool.GUARD + )); + put(NpcRank.LEADER, List.of( + LorienNpcDataPool.LORD + )); + }}, + new BannerData(DyeColor.WHITE, List.of( + new BannerData.BannerPatternWithColor(BannerPatternsME.CLOTH, DyeColor.YELLOW), + new BannerData.BannerPatternWithColor(BannerPatterns.GRADIENT, DyeColor.YELLOW), + new BannerData.BannerPatternWithColor(BannerPatternsME.STAR_AND_LEAF, DyeColor.WHITE) + )), + new SpawnDataHandler(List.of( + new SpawnData(MiddleEarth.of("lothlorien", "cerin_amroth"), new Vector2d(1614, 1215)) + )), List.of(), List.of(), + List.of( + new InitialDiplomacy(FactionRegistry.LOTHLORIEN, AffinityLevel.ALLY), + new InitialDiplomacy(FactionRegistry.GONDOR, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.ROHAN, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.SHIRE, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.LONGBEARDS, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.DALE, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.HOBGOBLIN_TRIBES, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.MORDOR, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.ISENGARD, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.WILD_GOBLINS, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.BRIGAND, AffinityLevel.HOSTILE) + ) + ); + } + +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/MordorFactionPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/MordorFactionPool.java new file mode 100644 index 0000000000..49f2fe6fc6 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/MordorFactionPool.java @@ -0,0 +1,80 @@ +package net.sevenstars.middleearth.registries.content.factions.pools; + +import net.minecraft.block.entity.BannerPatterns; +import net.minecraft.util.DyeColor; +import net.minecraft.util.Identifier; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.item.utils.BannerPatternsME; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.resources.datas.common.AffinityLevel; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; +import net.sevenstars.middleearth.resources.datas.common.FactionType; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.factions.data.BannerData; +import net.sevenstars.middleearth.resources.datas.factions.data.InitialDiplomacy; +import net.sevenstars.middleearth.resources.datas.factions.data.SpawnData; +import net.sevenstars.middleearth.resources.datas.factions.data.SpawnDataHandler; +import net.sevenstars.middleearth.resources.datas.common.NpcRank; +import net.sevenstars.middleearth.registries.content.npcs.pools.MordorNpcDataPool; +import org.joml.Vector2d; + +import java.util.HashMap; +import java.util.List; + +public class MordorFactionPool { + public final static Faction MORDOR; + + static { + MORDOR = new Faction(FactionRegistry.MORDOR, true, DispositionType.EVIL, FactionType.FACTION, null,null, + new HashMap<>(){{ + put(NpcRank.CIVILIAN, List.of( + MordorNpcDataPool.SNAGA + )); + put(NpcRank.MILITIA, List.of( + MordorNpcDataPool.MILITIA + )); + put(NpcRank.SOLDIER, List.of( + MordorNpcDataPool.WARRIOR + )); + put(NpcRank.KNIGHT, List.of( + MordorNpcDataPool.WARRIOR, + MordorNpcDataPool.VETERAN + )); + put(NpcRank.VETERAN, List.of( + MordorNpcDataPool.VETERAN + )); + put(NpcRank.LEADER, List.of( + MordorNpcDataPool.CAPTAIN, + MordorNpcDataPool.BLACK_NUMENOREAN + )); + }}, + new BannerData(DyeColor.BLACK, List.of( + new BannerData.BannerPatternWithColor(BannerPatternsME.CLOTH, DyeColor.GRAY), + new BannerData.BannerPatternWithColor(BannerPatterns.GRADIENT, DyeColor.BLACK), + new BannerData.BannerPatternWithColor(BannerPatterns.TRIANGLE_BOTTOM, DyeColor.BLACK), + new BannerData.BannerPatternWithColor(BannerPatternsME.SMALL_CIRCLE, DyeColor.ORANGE), + new BannerData.BannerPatternWithColor(BannerPatternsME.EYE_OF_SAURON, DyeColor.RED) + )), + new SpawnDataHandler(List.of( + new SpawnData(MiddleEarth.of("mordor", "gorgoroth"), new Vector2d(2161, 1717)), + new SpawnData(MiddleEarth.of("mordor", "black_gates"), new Vector2d(2010, 1608)), + new SpawnData(MiddleEarth.of("mordor", "minas_morgul"), new Vector2d(2029, 1770)), + new SpawnData(MiddleEarth.of("mordor", "nurn"), new Vector2d(2345, 1915)), + new SpawnData(MiddleEarth.of("mordor", "dol_guldur"), new Vector2d(1793, 1210)) + )), List.of(), List.of(), + List.of( + new InitialDiplomacy(FactionRegistry.LOTHLORIEN, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.GONDOR, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.ROHAN, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.SHIRE, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.LONGBEARDS, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.DALE, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.HOBGOBLIN_TRIBES, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.MORDOR, AffinityLevel.ALLY), + new InitialDiplomacy(FactionRegistry.ISENGARD, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.WILD_GOBLINS, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.BRIGAND, AffinityLevel.HOSTILE) + ) + ); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/RohanFactionPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/RohanFactionPool.java new file mode 100644 index 0000000000..36a9695a3c --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/RohanFactionPool.java @@ -0,0 +1,80 @@ +package net.sevenstars.middleearth.registries.content.factions.pools; + +import net.minecraft.block.entity.BannerPatterns; +import net.minecraft.util.DyeColor; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.item.utils.BannerPatternsME; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.resources.datas.common.AffinityLevel; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; +import net.sevenstars.middleearth.resources.datas.common.FactionType; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.factions.data.BannerData; +import net.sevenstars.middleearth.resources.datas.factions.data.InitialDiplomacy; +import net.sevenstars.middleearth.resources.datas.factions.data.SpawnData; +import net.sevenstars.middleearth.resources.datas.factions.data.SpawnDataHandler; +import net.sevenstars.middleearth.resources.datas.common.NpcRank; +import net.sevenstars.middleearth.registries.content.npcs.pools.RohirricNpcDataPool; +import net.sevenstars.api.utils.IdentifierUtil; +import org.joml.Vector2d; + +import java.util.HashMap; +import java.util.List; + +public class RohanFactionPool { + public final static Faction ROHAN; + private final static String FACTION_PATH = FactionRegistry.ROHAN.getValue().getPath(); + + static { + ROHAN = new Faction(FactionRegistry.ROHAN, true, DispositionType.GOOD, FactionType.FACTION, null,null, + new HashMap<>(){{ + put(NpcRank.CIVILIAN, List.of( + RohirricNpcDataPool.MILITIA + )); + put(NpcRank.MILITIA, List.of( + RohirricNpcDataPool.MILITIA + )); + put(NpcRank.SOLDIER, List.of( + RohirricNpcDataPool.SOLDIER + )); + put(NpcRank.KNIGHT, List.of( + RohirricNpcDataPool.KNIGHT + )); + put(NpcRank.VETERAN, List.of( + RohirricNpcDataPool.KNIGHT, + RohirricNpcDataPool.ROYAL_GUARD + )); + put(NpcRank.LEADER, List.of( + RohirricNpcDataPool.HORSE_LORD, + RohirricNpcDataPool.EORLING_MARSHAL + )); + }}, + new BannerData(DyeColor.WHITE, List.of( + new BannerData.BannerPatternWithColor(BannerPatternsME.CLOTH, DyeColor.GREEN), + new BannerData.BannerPatternWithColor(BannerPatterns.GRADIENT, DyeColor.LIME), + new BannerData.BannerPatternWithColor(BannerPatternsME.HORSE_HEAD, DyeColor.WHITE) + )), + new SpawnDataHandler(List.of( + new SpawnData(MiddleEarth.of("rohan", "edoras"), new Vector2d(1525, 1600)), + new SpawnData(MiddleEarth.of("rohan", "helms_deep"), new Vector2d(1470, 1555)), // Westfold + new SpawnData(MiddleEarth.of("rohan", "westemnet"), new Vector2d(1525, 1525)), + new SpawnData(MiddleEarth.of("rohan", "aldburg"), new Vector2d(1600, 1660)), // Eastfold + new SpawnData(MiddleEarth.of("rohan", "eastemnet"), new Vector2d(1715, 1575)), + new SpawnData(MiddleEarth.of("rohan", "the_wold"), new Vector2d(1675, 1475)) + )), List.of(), List.of(), + List.of( + new InitialDiplomacy(FactionRegistry.LOTHLORIEN, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.GONDOR, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.ROHAN, AffinityLevel.ALLY), + new InitialDiplomacy(FactionRegistry.SHIRE, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.LONGBEARDS, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.DALE, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.HOBGOBLIN_TRIBES, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.MORDOR, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.ISENGARD, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.WILD_GOBLINS, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.BRIGAND, AffinityLevel.HOSTILE) + ) + ); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/ShireFactionPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/ShireFactionPool.java new file mode 100644 index 0000000000..5de363f88b --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/ShireFactionPool.java @@ -0,0 +1,75 @@ +package net.sevenstars.middleearth.registries.content.factions.pools; + +import net.minecraft.block.entity.BannerPatterns; +import net.minecraft.util.DyeColor; +import net.minecraft.util.Identifier; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.item.utils.BannerPatternsME; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.resources.datas.common.AffinityLevel; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; +import net.sevenstars.middleearth.resources.datas.common.FactionType; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.factions.data.BannerData; +import net.sevenstars.middleearth.resources.datas.factions.data.InitialDiplomacy; +import net.sevenstars.middleearth.resources.datas.factions.data.SpawnData; +import net.sevenstars.middleearth.resources.datas.factions.data.SpawnDataHandler; +import net.sevenstars.middleearth.resources.datas.common.NpcRank; +import net.sevenstars.middleearth.registries.content.npcs.pools.ShireNpcDataPool; +import org.joml.Vector2d; + +import java.util.HashMap; +import java.util.List; + +public class ShireFactionPool { + public final static Faction SHIRE; + + static { + SHIRE = new Faction(FactionRegistry.SHIRE, true, DispositionType.GOOD, FactionType.FACTION, null,null, + new HashMap<>(){{ + put(NpcRank.CIVILIAN, List.of( + ShireNpcDataPool.PEASANT + )); + put(NpcRank.MILITIA, List.of( + ShireNpcDataPool.MILITIA + )); + put(NpcRank.SOLDIER, List.of( + ShireNpcDataPool.SHIRRIFF + )); + put(NpcRank.KNIGHT, List.of( + ShireNpcDataPool.SHIRRIFF + )); + put(NpcRank.VETERAN, List.of( + ShireNpcDataPool.SHIRRIFF + )); + put(NpcRank.LEADER, List.of( + ShireNpcDataPool.SHIRRIFF + )); + }}, + new BannerData(DyeColor.WHITE, List.of( + new BannerData.BannerPatternWithColor(BannerPatternsME.CLOTH, DyeColor.LIME), + new BannerData.BannerPatternWithColor(BannerPatterns.GRADIENT, DyeColor.LIME), + new BannerData.BannerPatternWithColor(BannerPatterns.CIRCLE, DyeColor.YELLOW), + new BannerData.BannerPatternWithColor(BannerPatternsME.PIPE, DyeColor.BROWN) + )), + new SpawnDataHandler(List.of( + new SpawnData(MiddleEarth.of("shire", "hobbiton"), new Vector2d(933, 900)), + new SpawnData(MiddleEarth.of("shire", "willowbottom"), new Vector2d(981, 970)) + )), List.of(), List.of(), + List.of( + new InitialDiplomacy(FactionRegistry.LOTHLORIEN, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.GONDOR, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.ROHAN, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.SHIRE, AffinityLevel.ALLY), + new InitialDiplomacy(FactionRegistry.LONGBEARDS, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.DALE, AffinityLevel.FRIENDLY), + new InitialDiplomacy(FactionRegistry.HOBGOBLIN_TRIBES, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.MORDOR, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.ISENGARD, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.WILD_GOBLINS, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.BRIGAND, AffinityLevel.HOSTILE) + ) + ); + } + +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/WildGoblinsFactionPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/WildGoblinsFactionPool.java new file mode 100644 index 0000000000..aa82bca9a3 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/factions/pools/WildGoblinsFactionPool.java @@ -0,0 +1,68 @@ +package net.sevenstars.middleearth.registries.content.factions.pools; + +import net.minecraft.block.entity.BannerPatterns; +import net.minecraft.util.DyeColor; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.registries.content.npcs.pools.WildGoblinNpcDataPool; +import net.sevenstars.middleearth.resources.datas.common.AffinityLevel; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; +import net.sevenstars.middleearth.resources.datas.common.FactionType; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.factions.data.BannerData; +import net.sevenstars.middleearth.resources.datas.common.NpcRank; +import net.sevenstars.middleearth.resources.datas.factions.data.InitialDiplomacy; + +import java.util.HashMap; +import java.util.List; + +public class WildGoblinsFactionPool { + public final static Faction WILD_GOBLIN; + + static { + WILD_GOBLIN = new Faction(FactionRegistry.WILD_GOBLINS, false, DispositionType.NEUTRAL, FactionType.FACTION, null,null, + new HashMap<>(){{ + put(NpcRank.CIVILIAN, List.of( + WildGoblinNpcDataPool.GATHERER + )); + put(NpcRank.MILITIA, List.of( + WildGoblinNpcDataPool.GATHERER + )); + put(NpcRank.SOLDIER, List.of( + WildGoblinNpcDataPool.GATHERER, + WildGoblinNpcDataPool.WARRIOR, + WildGoblinNpcDataPool.SCOUT, + WildGoblinNpcDataPool.RIDER + )); + put(NpcRank.KNIGHT, List.of( + WildGoblinNpcDataPool.WARRIOR + )); + put(NpcRank.VETERAN, List.of( + WildGoblinNpcDataPool.BRUTE + )); + put(NpcRank.LEADER, List.of( + WildGoblinNpcDataPool.BRUTE + )); + }}, + new BannerData(DyeColor.BLACK, List.of( + new BannerData.BannerPatternWithColor(BannerPatterns.GRADIENT_UP, DyeColor.GRAY), + new BannerData.BannerPatternWithColor(BannerPatterns.CROSS, DyeColor.RED), + new BannerData.BannerPatternWithColor(BannerPatterns.SKULL, DyeColor.WHITE) + )), + null , List.of(), List.of(), + List.of( + new InitialDiplomacy(FactionRegistry.LOTHLORIEN, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.GONDOR, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.ROHAN, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.SHIRE, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.LONGBEARDS, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.DALE, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.HOBGOBLIN_TRIBES, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.MORDOR, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.ISENGARD, AffinityLevel.HOSTILE), + new InitialDiplomacy(FactionRegistry.WILD_GOBLINS, AffinityLevel.ALLY), + new InitialDiplomacy(FactionRegistry.BRIGAND, AffinityLevel.HOSTILE) + ) + ); + } + +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/greathornvariants/GreatHornVariantRegistry.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/greathornvariants/GreatHornVariantRegistry.java new file mode 100644 index 0000000000..f0060de5d3 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/greathornvariants/GreatHornVariantRegistry.java @@ -0,0 +1,44 @@ +package net.sevenstars.middleearth.registries.content.greathornvariants; + +import net.minecraft.entity.spawn.SpawnConditionSelectors; +import net.minecraft.registry.*; +import net.minecraft.registry.tag.TagKey; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.entity.beasts.great_horn.GreatHornVariant; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; + +public class GreatHornVariantRegistry { + private static final RegistryKey> GREAT_HORN_VARIANTS_KEY = DynamicRegistriesME.GREAT_HORN_VARIANTS; + + public static final RegistryKey BROWN = DynamicRegistriesME.of(GREAT_HORN_VARIANTS_KEY, MiddleEarth.of("brown")); + public static final RegistryKey TEMPERATE = DynamicRegistriesME.of(GREAT_HORN_VARIANTS_KEY, MiddleEarth.of("temperate")); + public static final RegistryKey WARM = DynamicRegistriesME.of(GREAT_HORN_VARIANTS_KEY, MiddleEarth.of("warm")); + public static final RegistryKey COLD = DynamicRegistriesME.of(GREAT_HORN_VARIANTS_KEY, MiddleEarth.of("cold")); + public static final RegistryKey DEFAULT = BROWN; + + public static void bootstrap(Registerable context) { + RegistryEntryLookup registryEntryLookup = context.getRegistryLookup(GREAT_HORN_VARIANTS_KEY); + + register(context, registryEntryLookup, BROWN, new GreatHornVariant( + GreatHornVariantRegistryHelper.createAssetInfos("brown"), + SpawnConditionSelectors.createFallback(0))); + + register(context, registryEntryLookup, TEMPERATE, new GreatHornVariant( + GreatHornVariantRegistryHelper.createAssetInfos("temperate"), + SpawnConditionSelectors.createFallback(0))); + + register(context, registryEntryLookup, WARM, new GreatHornVariant( + GreatHornVariantRegistryHelper.createAssetInfos("warm"), + GreatHornVariantRegistryHelper.createSpawnConditions(context, TagKey.of(RegistryKeys.BIOME, MiddleEarth.of("spawns_warm_variant_great_horn")), 0))); + + register(context, registryEntryLookup, COLD, new GreatHornVariant( + GreatHornVariantRegistryHelper.createAssetInfos("cold"), + GreatHornVariantRegistryHelper.createSpawnConditions(context, TagKey.of(RegistryKeys.BIOME, MiddleEarth.of("spawns_cold_variant_great_horn")), 1))); + } + + private static void register(Registerable context, RegistryEntryLookup registryEntryLookup, RegistryKey registryKey, GreatHornVariant element){ + DynamicRegistriesME.register(context, registryEntryLookup, registryKey, element); + // [LANG datagen] + // None + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/greathornvariants/GreatHornVariantRegistryHelper.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/greathornvariants/GreatHornVariantRegistryHelper.java new file mode 100644 index 0000000000..ffd4cd6b48 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/greathornvariants/GreatHornVariantRegistryHelper.java @@ -0,0 +1,30 @@ +package net.sevenstars.middleearth.registries.content.greathornvariants; + +import net.minecraft.entity.spawn.BiomeSpawnCondition; +import net.minecraft.entity.spawn.SpawnConditionSelectors; +import net.minecraft.registry.Registerable; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.entry.RegistryEntryList; +import net.minecraft.registry.tag.TagKey; +import net.minecraft.util.AssetInfo; +import net.minecraft.world.biome.Biome; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.entity.beasts.great_horn.GreatHornVariant; + +public class GreatHornVariantRegistryHelper { + private static final String TEXTURE_PATH = "entities/great_horn/"; + private static final String ENTITY_NAME = "_great_horn"; + + public static GreatHornVariant.GreatHornAssetInfo createAssetInfos(String textureName){ + return new GreatHornVariant.GreatHornAssetInfo( + new AssetInfo(MiddleEarth.of(TEXTURE_PATH + textureName + ENTITY_NAME))); + } + + public static SpawnConditionSelectors createSpawnConditions(Registerable registry, TagKey biomeTag, int priority) { + return createSpawnConditions(registry.getRegistryLookup(RegistryKeys.BIOME).getOrThrow(biomeTag), priority); + } + + public static SpawnConditionSelectors createSpawnConditions(RegistryEntryList requiredBiomes, int priority) { + return SpawnConditionSelectors.createSingle(new BiomeSpawnCondition(requiredBiomes), priority); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/NpcRegistry.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/NpcRegistry.java new file mode 100644 index 0000000000..50850c4cac --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/NpcRegistry.java @@ -0,0 +1,170 @@ +package net.sevenstars.middleearth.registries.content.npcs; + +import net.minecraft.entity.attribute.EntityAttributes; +import net.minecraft.registry.Registerable; +import net.minecraft.registry.Registry; +import net.minecraft.registry.RegistryEntryLookup; +import net.minecraft.registry.RegistryKey; +import net.minecraft.util.Identifier; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.datageneration.content.TranslationEntries; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.registries.content.npcs.pools.*; +import net.sevenstars.middleearth.resources.datas.attributes.AttributePool; +import net.sevenstars.middleearth.resources.datas.attributes.AttributePoolElement; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.npcs.NpcData; +import net.sevenstars.middleearth.resources.datas.common.EntityCategories; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +public class NpcRegistry { + private static final RegistryKey> NPC_KEY = DynamicRegistriesME.NPC; + + public static final HashMap COMMON_NPC_ATTRIBUTES = new HashMap<>(){{ + put(EntityCategories.SHARED, new AttributePool().addElement( + AttributePoolElement.create(EntityAttributes.MOVEMENT_SPEED, 0.35, 0.45) + )); + }}; + + public static ArrayList> allNpcDatas; + + // [BRIGANDS] + public final static RegistryKey BRIGAND_THUG = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.BRIGAND, "thug")); + public final static RegistryKey BRIGAND_THIEF = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.BRIGAND, "thief")); + public final static RegistryKey BRIGAND_MERCENARY = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.BRIGAND, "mercenary")); + public final static RegistryKey BRIGAND_CHIEFTAIN = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.BRIGAND, "chieftain")); + + // [WILD GOBLINS] + public final static RegistryKey WILD_GOBLIN_GATHERER = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.WILD_GOBLINS, "gatherer")); + public final static RegistryKey WILD_GOBLIN_WARRIOR = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.WILD_GOBLINS, "warrior")); + public final static RegistryKey WILD_GOBLIN_SCOUT = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.WILD_GOBLINS, "scout")); + public final static RegistryKey WILD_GOBLIN_RIDER = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.WILD_GOBLINS, "rider")); + public final static RegistryKey WILD_GOBLIN_BRUTE = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.WILD_GOBLINS, "brute")); + + // [DALE] + public final static RegistryKey DALE_PEASANT = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.DALE, "peasant")); + public final static RegistryKey DALE_MILITIA = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.DALE, "militia")); + public final static RegistryKey DALE_SOLDIER = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.DALE, "soldier")); + public final static RegistryKey DALE_ARCHER = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.DALE, "archer")); + public final static RegistryKey DALE_KNIGHT = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.DALE, "knight")); + public final static RegistryKey DALE_ELITE_ARCHER = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.DALE, "elite_archer")); + public final static RegistryKey DALE_VETERAN = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.DALE, "veteran")); + public final static RegistryKey DALE_SERGEANT = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.DALE, "sergeant")); + + // [GONDOR] + public final static RegistryKey GONDOR_PEASANT = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.GONDOR, "peasant")); + public final static RegistryKey GONDOR_MILITIA = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.GONDOR, "militia")); + public final static RegistryKey GONDOR_SOLDIER = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.GONDOR, "soldier")); + public final static RegistryKey GONDOR_KNIGHT = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.GONDOR, "knight")); + public final static RegistryKey GONDOR_VETERAN = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.GONDOR, "veteran")); + public final static RegistryKey GONDOR_FOUNTAIN_GUARD = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.GONDOR, "fountain_guard")); + public final static RegistryKey GONDOR_CITADEL_GUARD = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.GONDOR, "citadel_guard")); + public final static RegistryKey GONDOR_KING_GUARD = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.GONDOR, "king_guard")); + public final static RegistryKey GONDOR_LEADER = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.GONDOR, "leader")); + + // [ROHAN] + public final static RegistryKey ROHAN_PEASANT = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.ROHAN, "peasant")); + public final static RegistryKey ROHAN_MILITIA = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.ROHAN, "militia")); + public final static RegistryKey ROHAN_SOLDIER = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.ROHAN, "soldier")); + public final static RegistryKey ROHAN_KNIGHT = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.ROHAN, "knight")); + public final static RegistryKey ROHAN_ROYAL_GUARD = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.ROHAN, "royal_guard")); + public final static RegistryKey ROHAN_EORLING_MARSHAL = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.ROHAN, "eorling_marshal")); + public final static RegistryKey ROHAN_HORSE_LORD = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.ROHAN, "horse_lord")); + + // [SHIRE] + public final static RegistryKey SHIRE_PEASANT = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.SHIRE, "peasant")); + public final static RegistryKey SHIRE_MILITIA = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.SHIRE, "militia")); + public final static RegistryKey SHIRE_SHIRRIFF = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.SHIRE, "shirriff")); + + // [LONGBEARDS] + // [EREBOR] + public final static RegistryKey EREBOR_PEASANT = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.LONGBEARDS_EREBOR, "peasant")); + public final static RegistryKey EREBOR_MINER = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.LONGBEARDS_EREBOR, "miner")); + public final static RegistryKey EREBOR_MILITIA = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.LONGBEARDS_EREBOR, "militia")); + public final static RegistryKey EREBOR_SOLDIER = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.LONGBEARDS_EREBOR, "soldier")); + public final static RegistryKey EREBOR_ARCHER = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.LONGBEARDS_EREBOR, "archer")); + public final static RegistryKey EREBOR_ELITE = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.LONGBEARDS_EREBOR, "elite")); + public final static RegistryKey EREBOR_VETERAN = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.LONGBEARDS_EREBOR, "veteran")); + public final static RegistryKey EREBOR_GATEWARDEN = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.LONGBEARDS_EREBOR, "gatewarden")); + public final static RegistryKey EREBOR_LEADER = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.LONGBEARDS_EREBOR, "leader")); + + // [LOTHLORIEN] + public final static RegistryKey LOTHLORIEN_SENTINEL = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.LOTHLORIEN, "sentinel")); + public final static RegistryKey LOTHLORIEN_RANGER = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.LOTHLORIEN, "ranger")); + public final static RegistryKey LOTHLORIEN_WARRIOR = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.LOTHLORIEN, "warrior")); + public final static RegistryKey LOTHLORIEN_KNIGHT = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.LOTHLORIEN, "knight")); + public final static RegistryKey LOTHLORIEN_GUARD = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.LOTHLORIEN, "guard")); + public final static RegistryKey LOTHLORIEN_LORD = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.LOTHLORIEN, "lord")); + + // [MORDOR] + public final static RegistryKey MORDOR_BLACK_NUMENOREAN = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.MORDOR, "black_numenorean")); + public final static RegistryKey MORDOR_SNAGA = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.MORDOR, "snaga")); + public final static RegistryKey MORDOR_SCOUT = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.MORDOR, "scout")); + public final static RegistryKey MORDOR_MILITIA = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.MORDOR, "militia")); + public final static RegistryKey MORDOR_WARRIOR = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.MORDOR, "warrior")); + public final static RegistryKey MORDOR_VETERAN = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.MORDOR, "veteran")); + public final static RegistryKey MORDOR_CAPTAIN = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.MORDOR, "captain")); + + // [HOBGOBLINS TRIBES] + // [GUNDABAD] + public final static RegistryKey GUNDABAD_SNAGA = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD, "snaga")); + public final static RegistryKey GUNDABAD_MILITIA = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD, "militia")); + public final static RegistryKey GUNDABAD_SCOUT = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD, "scout")); + public final static RegistryKey GUNDABAD_RIDER = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD, "rider")); + public final static RegistryKey GUNDABAD_WARRIOR = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD, "warrior")); + public final static RegistryKey GUNDABAD_VETERAN = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD, "veteran")); + public final static RegistryKey GUNDABAD_LEADER = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD, "leader")); + + // [ISENGARD] + public final static RegistryKey ISENGARD_ORC_SNAGA = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.ISENGARD, "snaga")); + public final static RegistryKey ISENGARD_ORC_WARRIOR = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.ISENGARD, "warrior")); + public final static RegistryKey ISENGARD_URUK_HAI_SOLDIER = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.ISENGARD, "soldier")); + public final static RegistryKey ISENGARD_URUK_HAI_SCOUT = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.ISENGARD, "scout")); + public final static RegistryKey ISENGARD_URUK_HAI_VETERAN = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.ISENGARD, "veteran")); + public final static RegistryKey ISENGARD_URUK_HAI_BERSERKER = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.ISENGARD, "berserker")); + public final static RegistryKey ISENGARD_URUK_HAI_LEADER = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.ISENGARD, "leader")); + public final static RegistryKey ISENGARD_ORTHANC_GUARD = DynamicRegistriesME.of(NPC_KEY, createID(FactionRegistry.ISENGARD, "orthanc_guard")); + + + + public static void bootstrap(Registerable context) { + RegistryEntryLookup registryEntryLookup = context.getRegistryLookup(NPC_KEY); + + allNpcDatas = new ArrayList<>(); + + registerAll(context, registryEntryLookup, BrigandNpcDataPool.fetchAll()); + registerAll(context, registryEntryLookup, WildGoblinNpcDataPool.fetchAll()); + registerAll(context, registryEntryLookup, DalishNpcDataPool.fetchAll()); + registerAll(context, registryEntryLookup, GondorianNpcDataPool.fetchAll()); + registerAll(context, registryEntryLookup, RohirricNpcDataPool.fetchAll()); + registerAll(context, registryEntryLookup, ShireNpcDataPool.fetchAll()); + registerAll(context, registryEntryLookup, EreborNpcDataPool.fetchAll()); + registerAll(context, registryEntryLookup, LorienNpcDataPool.fetchAll()); + registerAll(context, registryEntryLookup, MordorNpcDataPool.fetchAll()); + registerAll(context, registryEntryLookup, GundabadNpcDataPool.fetchAll()); + registerAll(context, registryEntryLookup, IsengardNpcDataPool.fetchAll()); + } + + private static void registerAll(Registerable context, RegistryEntryLookup registryEntryLookup, List npcDatas) { + for(RegisterableNpcData registerable : npcDatas){ + register(context, registryEntryLookup, registerable.npcDataRegistryKey, registerable.content); + allNpcDatas.add(registerable.npcDataRegistryKey); + } + } + + private static void register(Registerable context, RegistryEntryLookup registryEntryLookup, RegistryKey registryKey, NpcData element){ + DynamicRegistriesME.register(context, registryEntryLookup, registryKey, element); + // [LANG datagen] + TranslationEntries.npcDataEntries.add(registryKey.getValue().getPath()); + } + + private static Identifier createID(RegistryKey faction, String name){ + return MiddleEarth.of(faction.getValue().getPath(), name); + } + + public record RegisterableNpcData (RegistryKey npcDataRegistryKey, NpcData content){ } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/BrigandNpcDataPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/BrigandNpcDataPool.java new file mode 100644 index 0000000000..56f2f7002d --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/BrigandNpcDataPool.java @@ -0,0 +1,281 @@ +package net.sevenstars.middleearth.registries.content.npcs.pools; + +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.item.Items; +import net.minecraft.registry.RegistryKey; +import net.sevenstars.middleearth.item.EquipmentItemsME; +import net.sevenstars.middleearth.item.ToolItemsME; +import net.sevenstars.middleearth.item.WeaponItemsME; +import net.sevenstars.middleearth.item.utils.armor.backAttachments.BackAttachmentsME; +import net.sevenstars.middleearth.item.utils.armor.helmetAttachments.HelmetAttachmentsME; +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.registries.content.npcs.NpcRegistry; +import net.sevenstars.middleearth.registries.content.races.RaceRegistry; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.npcs.NpcData; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedGearData; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedItemData; +import net.sevenstars.middleearth.resources.datas.npcs.data.GearSlotPool; + +import java.util.List; + +public class BrigandNpcDataPool { + private final static RegistryKey FACTION = FactionRegistry.BRIGAND; + + private final static int DEFAULT = 0x43403a; + private final static int DARKEST_RED = 0x321111; + private final static int DARK_BROWN = 0x2b1c17; + private final static int LIGHT_BROWN = 0x412f26; + private final static int DARK_ORANGE = 0x5d3309; + private final static int DARK_GREEN = 0x1b3220; + private final static int GREEN = 0x283d1a; + private final static int OLIVE_GREEN = 0x3c3e2a; + private final static int DARK_BLUE = 0x1e1e32; + private final static int BLUE = 0x294141; + private final static int PINK = 0x5d2b52; + + + public final static NpcData THUG; + public final static NpcData THIEF; + public final static NpcData MERCENARY; + public final static NpcData CHIEFTAIN; + + public static List fetchAll() { + return List.of( + new NpcRegistry.RegisterableNpcData(NpcRegistry.BRIGAND_THUG, THUG), + new NpcRegistry.RegisterableNpcData(NpcRegistry.BRIGAND_THIEF, THIEF), + new NpcRegistry.RegisterableNpcData(NpcRegistry.BRIGAND_MERCENARY, MERCENARY), + new NpcRegistry.RegisterableNpcData(NpcRegistry.BRIGAND_CHIEFTAIN, CHIEFTAIN) + ); + } + + private static final List allColors = List.of(DEFAULT, DARK_BROWN, LIGHT_BROWN, DARK_GREEN, DARK_BLUE, DARKEST_RED, GREEN, BLUE, DARK_ORANGE); + static { + THUG = new NpcData(NpcRegistry.BRIGAND_THUG.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.BRIGAND_THUG, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR).withWeight(6)) + .add(WeightedItemData.create(EquipmentItemsME.BYCOCKET).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.BYCOCKET).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.WOVEN_HAT)) + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_SKULLCAP).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_SKULLCAP).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON_CAP).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON_CAP).withColor(DARK_BROWN).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON_CAP).withColor(LIGHT_BROWN).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON_CAP).withColors(allColors)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_VEST).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.SURCOAT, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_VEST).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.SURCOAT, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_VEST).withCape(BackAttachmentsME.SURCOAT, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_SCALE_VEST).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.SURCOAT, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_SCALE_VEST).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.SURCOAT, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_SCALE_VEST).withCape(BackAttachmentsME.SURCOAT, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.SURCOAT, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.SURCOAT, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON).withCape(BackAttachmentsME.SURCOAT, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.SURCOAT, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.SURCOAT, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withCape(BackAttachmentsME.SURCOAT, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CAPE, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CAPE, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withCape(BackAttachmentsME.SURCOAT, allColors)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.MAIL_SKIRT).withWeight(3)) + + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withColor(DARK_BROWN).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withColor(LIGHT_BROWN).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_SKIRT).withColors(allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.ELVEN_ARMING_COAT).withColor(DARK_BROWN).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.ELVEN_ARMING_COAT).withColor(LIGHT_BROWN).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.ELVEN_ARMING_COAT).withColors(allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColor(DARK_BROWN).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColor(LIGHT_BROWN).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.ELVEN_ARMING_COAT).withColors(allColors)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.SHOES)) + .add(WeightedItemData.create(EquipmentItemsME.STURDY_BOOTS)) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.BRONZE_SWORD).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.BRONZE_SPEAR).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.IRON_SPEAR).withWeight(2)) + .add(WeightedItemData.create(Items.IRON_SWORD)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.HEATER_SHIELD).withWeight(4)) + .add(WeightedItemData.create(WeaponItemsME.ROUND_SHIELD).withWeight(4)) + .add(WeightedItemData.create(Items.AIR).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.CRUDE_DAGGER)) + .add(WeightedItemData.create(WeaponItemsME.BRONZE_DAGGER)) + .add(WeightedItemData.create(WeaponItemsME.IRON_DAGGER)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + THIEF = new NpcData(NpcRegistry.BRIGAND_THIEF.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.BRIGAND_THUG, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.BYCOCKET).withHood(HelmetAttachmentsME.HOOD, allColors)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_VEST).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CLOAK, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_VEST).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CLOAK, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_VEST).withCape(BackAttachmentsME.CLOAK, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_SCALE_VEST).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CLOAK, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_SCALE_VEST).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CLOAK, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_SCALE_VEST).withCape(BackAttachmentsME.CLOAK, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CLOAK, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CLOAK, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON).withCape(BackAttachmentsME.CLOAK, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CLOAK, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CLOAK, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withCape(BackAttachmentsME.CLOAK, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CLOAK, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CLOAK, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withCape(BackAttachmentsME.CLOAK, allColors)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.SHOES)) + .add(WeightedItemData.create(EquipmentItemsME.STURDY_BOOTS)) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.IRON_DAGGER)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.IRON_DAGGER)) + .add(WeightedItemData.create(Items.AIR).withWeight(2)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + MERCENARY = new NpcData(NpcRegistry.BRIGAND_MERCENARY.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.BRIGAND_MERCENARY, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COIF)) + .add(WeightedItemData.create(EquipmentItemsME.KETTLE_HAT)) + .add(WeightedItemData.create(EquipmentItemsME.OPEN_FACE_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.KETTLE_HAT_WITH_COIF)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_VEST).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CAPE, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_VEST).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CAPE, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_VEST).withCape(BackAttachmentsME.CAPE, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_SCALE_VEST).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CAPE, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_SCALE_VEST).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CAPE, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_SCALE_VEST).withCape(BackAttachmentsME.CAPE, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CAPE, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CAPE, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withCape(BackAttachmentsME.CAPE, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CAPE, allColors).withCape(BackAttachmentsME.TAN_FUR)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CAPE, allColors).withCape(BackAttachmentsME.TAN_FUR)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withCape(BackAttachmentsME.CAPE, allColors).withCape(BackAttachmentsME.BLACK_FUR)) + + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CAPE, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CAPE, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withCape(BackAttachmentsME.CAPE, allColors)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.SHOES)) + .add(WeightedItemData.create(EquipmentItemsME.STURDY_BOOTS)) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.STEEL_SWORD)) + .add(WeightedItemData.create(WeaponItemsME.STEEL_SPEAR)) + .add(WeightedItemData.create(ToolItemsME.STEEL_AXE)) + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_SWORD)) + .add(WeightedItemData.create(WeaponItemsME.EREBOR_SWORD)) + .add(WeightedItemData.create(WeaponItemsME.DALISH_SWORD)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR).withWeight(4)) + .add(WeightedItemData.create(WeaponItemsME.ROUND_SHIELD).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.HEATER_SHIELD).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.MORDOR_WOODEN_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.MORDOR_ROUND_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.MORDOR_BRACED_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_WOODEN_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + CHIEFTAIN = new NpcData(NpcRegistry.BRIGAND_CHIEFTAIN.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.BRIGAND_CHIEF, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_LEATHER_HELMET).withColor(DEFAULT).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_BRACED_LEATHER_HELMET).withColor(DEFAULT).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.SALLET).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_BRACED_HELMET).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.KETTLE_HAT_WITH_CLOSED_COIF).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_SEEKER_HELMET).withColor(DARK_BROWN).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_SEEKER_HELMET).withColor(LIGHT_BROWN).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_SEEKER_HELMET).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_NASAL_LEATHER_HELMET).withColor(DEFAULT)) + + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CAPE, DEFAULT).withCape(BackAttachmentsME.ORCISH_TAN_FUR_SURCOAT_WITH_BONE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CAPE, DEFAULT).withCape(BackAttachmentsME.ORCISH_TAN_FUR_SURCOAT_WITH_BONE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withCape(BackAttachmentsME.CLOAK, DEFAULT).withCape(BackAttachmentsME.ORCISH_BLACK_FUR_SURCOAT_WITH_BONE)) + + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CAPE, DEFAULT).withCape(BackAttachmentsME.ORCISH_TAN_FUR_SURCOAT_WITH_BONE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CAPE, DEFAULT).withCape(BackAttachmentsME.ORCISH_TAN_FUR_SURCOAT_WITH_BONE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withCape(BackAttachmentsME.CLOAK, DEFAULT).withCape(BackAttachmentsME.ORCISH_BLACK_FUR_SURCOAT_WITH_BONE)) + + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CAPE, allColors).withCape(BackAttachmentsME.ORCISH_TAN_FUR_SURCOAT_WITH_BONE)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CAPE, allColors).withCape(BackAttachmentsME.ORCISH_TAN_FUR_SURCOAT_WITH_BONE)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withCape(BackAttachmentsME.CAPE, allColors).withCape(BackAttachmentsME.ORCISH_BLACK_FUR_SURCOAT_WITH_BONE)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.MAIL_SKIRT)) + .add(WeightedItemData.create(EquipmentItemsME.DWARVEN_MAIL_COAT)) + + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CAPE, DEFAULT)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CAPE, DEFAULT)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withCape(BackAttachmentsME.CLOAK, DEFAULT)) + + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_REINFORCED_LEATHER_SKIRT).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CAPE, DEFAULT)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_REINFORCED_LEATHER_SKIRT).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CAPE, DEFAULT)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_REINFORCED_LEATHER_SKIRT).withCape(BackAttachmentsME.CLOAK, DEFAULT)) + + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_LEGGINGS).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CAPE, DEFAULT)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_LEGGINGS).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CAPE, DEFAULT)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_LEGGINGS).withCape(BackAttachmentsME.CLOAK, DEFAULT)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.DWARVEN_REINFORCED_BOOTS)) + .add(WeightedItemData.create(EquipmentItemsME.GONDORIAN_PLATE_BOOTS)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATED_BOOTS)) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.STEEL_SWORD)) + .add(WeightedItemData.create(WeaponItemsME.STEEL_SPEAR)) + .add(WeightedItemData.create(ToolItemsME.STEEL_AXE)) + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_SWORD)) + .add(WeightedItemData.create(WeaponItemsME.EREBOR_SWORD)) + .add(WeightedItemData.create(WeaponItemsME.DALISH_SWORD)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR).withWeight(4)) + .add(WeightedItemData.create(WeaponItemsME.ROUND_SHIELD).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.HEATER_SHIELD).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.MORDOR_WOODEN_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.MORDOR_ROUND_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.MORDOR_BRACED_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_WOODEN_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/DalishNpcDataPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/DalishNpcDataPool.java new file mode 100644 index 0000000000..c44111afe7 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/DalishNpcDataPool.java @@ -0,0 +1,264 @@ +package net.sevenstars.middleearth.registries.content.npcs.pools; + +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.item.Items; +import net.minecraft.registry.RegistryKey; +import net.sevenstars.middleearth.item.EquipmentItemsME; +import net.sevenstars.middleearth.item.ToolItemsME; +import net.sevenstars.middleearth.item.WeaponItemsME; +import net.sevenstars.middleearth.item.utils.armor.backAttachments.BackAttachmentsME; +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.registries.content.npcs.NpcRegistry; +import net.sevenstars.middleearth.registries.content.races.RaceRegistry; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.npcs.NpcData; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedGearData; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedItemData; +import net.sevenstars.middleearth.resources.datas.npcs.data.GearSlotPool; + +import java.util.List; + +public class DalishNpcDataPool { + private final static RegistryKey FACTION = FactionRegistry.DALE; + + public final static NpcData PEASANT; + + public final static NpcData MILITIA; + public final static NpcData SOLDIER; + public final static NpcData ARCHER; + public final static NpcData KNIGHT; + public final static NpcData ELITE_ARCHER; + public final static NpcData VETERAN; + public final static NpcData SERGEANT; + + public static List fetchAll() { + return List.of( + new NpcRegistry.RegisterableNpcData(NpcRegistry.DALE_PEASANT, PEASANT), + new NpcRegistry.RegisterableNpcData(NpcRegistry.DALE_MILITIA, MILITIA), + new NpcRegistry.RegisterableNpcData(NpcRegistry.DALE_SOLDIER, SOLDIER), + new NpcRegistry.RegisterableNpcData(NpcRegistry.DALE_ARCHER, ARCHER), + new NpcRegistry.RegisterableNpcData(NpcRegistry.DALE_KNIGHT, KNIGHT), + new NpcRegistry.RegisterableNpcData(NpcRegistry.DALE_ELITE_ARCHER, ELITE_ARCHER), + new NpcRegistry.RegisterableNpcData(NpcRegistry.DALE_VETERAN, VETERAN), + new NpcRegistry.RegisterableNpcData(NpcRegistry.DALE_SERGEANT, SERGEANT) + ); + } + + static { + PEASANT = new NpcData(NpcRegistry.DALE_PEASANT.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.DALE_PEASANT, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.STRAW_HAT)) + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_SKULLCAP)) + .add(WeightedItemData.create(EquipmentItemsME.BYCOCKET)) + .add(WeightedItemData.create().withWeight(5)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.DALISH_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(Items.STONE_AXE)) + .add(WeightedItemData.create(ToolItemsME.SMITHING_HAMMER)) + .add(WeightedItemData.create(ToolItemsME.PIPE)) + .add(WeightedItemData.create().withWeight(3)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + MILITIA = new NpcData(NpcRegistry.DALE_MILITIA.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.DALE_PEASANT, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.DALISH_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_SKULLCAP)) + .add(WeightedItemData.create().withWeight(2)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.DALISH_ARMING_COAT_BROWN_FUR)) + .add(WeightedItemData.create(EquipmentItemsME.DALISH_ARMING_COAT_BLACK_FUR)) + .add(WeightedItemData.create(EquipmentItemsME.DALISH_ARMING_COAT_TAN_FUR)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.ARMING_SKIRT))) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.DALISH_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(Items.IRON_SWORD)) + .add(WeightedItemData.create(WeaponItemsME.IRON_SPEAR)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.ROUND_SHIELD)) + .add(WeightedItemData.create(Items.SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + SOLDIER = new NpcData(NpcRegistry.DALE_SOLDIER.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.DALE_SOLDIER, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.KETTLE_HAT)) + .add(WeightedItemData.create(EquipmentItemsME.KETTLE_HAT_WITH_CLOSED_COIF)) + .add(WeightedItemData.create(EquipmentItemsME.DALISH_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.DALISH_HELMET_BROWN_FUR)) + .add(WeightedItemData.create(EquipmentItemsME.DALISH_HELMET_BLACK_FUR)) + .add(WeightedItemData.create(EquipmentItemsME.DALISH_HELMET_TAN_FUR)) + .add(WeightedItemData.create().withWeight(4)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.DALISH_MAIL_HAUBERK)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.DALISH_MAIL_COAT)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_SKIRT)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.DALISH_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.DALISH_SWORD)) + .add(WeightedItemData.create(WeaponItemsME.DALISH_AXE)) + .add(WeightedItemData.create(WeaponItemsME.IRON_SPEAR)) + .add(WeightedItemData.create(WeaponItemsME.DALISH_SPEAR)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.DALISH_BLUE_OVAL_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.DALISH_BLUE_BRACED_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + ARCHER = new NpcData(NpcRegistry.DALE_ARCHER.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.DALE_SOLDIER, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.DALISH_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.DALISH_HELMET_BROWN_FUR)) + .add(WeightedItemData.create(EquipmentItemsME.DALISH_HELMET_BLACK_FUR)) + .add(WeightedItemData.create(EquipmentItemsME.DALISH_HELMET_TAN_FUR)) + .add(WeightedItemData.create().withWeight(4)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.DALISH_ARMING_COAT_BROWN_FUR).withCape(BackAttachmentsME.SURCOAT)) + .add(WeightedItemData.create(EquipmentItemsME.DALISH_ARMING_COAT_BLACK_FUR).withCape(BackAttachmentsME.SURCOAT)) + .add(WeightedItemData.create(EquipmentItemsME.DALISH_ARMING_COAT_TAN_FUR).withCape(BackAttachmentsME.SURCOAT)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.DALISH_MAIL_COAT)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_SKIRT)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.DALISH_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.DALISH_LONGBOW)) + .add(WeightedItemData.create(Items.BOW)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + KNIGHT = new NpcData(NpcRegistry.DALE_KNIGHT.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.DALE_SOLDIER, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.KETTLE_HAT_WITH_CLOSED_COIF)) + .add(WeightedItemData.create(EquipmentItemsME.DALISH_BURGONET)) + .add(WeightedItemData.create(EquipmentItemsME.DALISH_HELMET_BROWN_FUR)) + .add(WeightedItemData.create(EquipmentItemsME.DALISH_HELMET_BLACK_FUR)) + .add(WeightedItemData.create(EquipmentItemsME.DALISH_HELMET_TAN_FUR)) + .add(WeightedItemData.create().withWeight(4)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.DALISH_MAIL_HAUBERK)) + .add(WeightedItemData.create(EquipmentItemsME.DALISH_SCALE_HAUBERK)) + .add(WeightedItemData.create(EquipmentItemsME.DALISH_SCALE_HAUBERK)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.DALISH_MAIL_COAT)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_SKIRT)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.DALISH_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.DALISH_NOBLE_SWORD)) + .add(WeightedItemData.create(WeaponItemsME.DALISH_NOBLE_AXE)) + .add(WeightedItemData.create(WeaponItemsME.DALISH_LONGSWORD)) + .add(WeightedItemData.create(WeaponItemsME.DALISH_NOBLE_LONGSWORD)) + .add(WeightedItemData.create(WeaponItemsME.DALISH_SPEAR)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR)) + .add(WeightedItemData.create(WeaponItemsME.DALISH_BARDING_OVAL_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.DALISH_BARDING_BRACED_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + ELITE_ARCHER = new NpcData(NpcRegistry.DALE_ELITE_ARCHER.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.DALE_SOLDIER, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.DALISH_HELMET_BROWN_FUR)) + .add(WeightedItemData.create(EquipmentItemsME.DALISH_HELMET_BLACK_FUR)) + .add(WeightedItemData.create(EquipmentItemsME.DALISH_HELMET_TAN_FUR)) + .add(WeightedItemData.create().withWeight(2)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.DALISH_MAIL_HAUBERK)) + .add(WeightedItemData.create(EquipmentItemsME.DALISH_SCALE_HAUBERK)) + .add(WeightedItemData.create(EquipmentItemsME.DALISH_SCALE_HAUBERK)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.DALISH_MAIL_COAT)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_SKIRT)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.DALISH_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.DALISH_NOBLE_LONGBOW)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + VETERAN = new NpcData(NpcRegistry.DALE_VETERAN.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.DALE_LORD, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.BARDING_SOLDIER_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.DALISH_BURGONET)) + .add(WeightedItemData.create().withWeight(1)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.BARDING_SOLDIER_CHESTPLATE)) + .add(WeightedItemData.create(EquipmentItemsME.DALISH_SCALE_HAUBERK)) + .add(WeightedItemData.create(EquipmentItemsME.BARDING_SOLDIER_CHESTPLATE).withCape(BackAttachmentsME.BARDING_SURCOAT)) + .add(WeightedItemData.create(EquipmentItemsME.DALISH_SCALE_HAUBERK).withCape(BackAttachmentsME.BARDING_SURCOAT)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.DALISH_MAIL_COAT)) + .add(WeightedItemData.create(EquipmentItemsME.BARDING_MAIL_SKIRT)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.BARDING_PLATED_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.DALISH_NOBLE_SWORD)) + .add(WeightedItemData.create(WeaponItemsME.DALISH_NOBLE_AXE)) + .add(WeightedItemData.create(WeaponItemsME.DALISH_LONGSWORD)) + .add(WeightedItemData.create(WeaponItemsME.DALISH_NOBLE_LONGSWORD)) + .add(WeightedItemData.create(WeaponItemsME.DALISH_NOBLE_SPEAR)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR)) + .add(WeightedItemData.create(WeaponItemsME.DALISH_BARDING_BRACED_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.DALISH_BARDING_OVAL_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.DALISH_BARDING_HEAVY_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + SERGEANT = new NpcData(NpcRegistry.DALE_SERGEANT.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.DALE_LORD, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.BARDING_SOLDIER_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.BARDING_SERGEANT_HELMET).withWeight(3)) + .add(WeightedItemData.create().withWeight(2)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.BARDING_SERGEANT_CHESTPLATE).withWeight(3).withCape(BackAttachmentsME.BARDING_SERGEANT_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.BARDING_SERGEANT_CHESTPLATE)) + .add(WeightedItemData.create(EquipmentItemsME.BARDING_SOLDIER_CHESTPLATE).withCape(BackAttachmentsME.BARDING_SERGEANT_CAPE)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.BARDING_MAIL_SKIRT)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.BARDING_PLATED_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.DALISH_NOBLE_SWORD)) + .add(WeightedItemData.create(WeaponItemsME.DALISH_NOBLE_AXE)) + .add(WeightedItemData.create(WeaponItemsME.DALISH_LONGSWORD)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR)) + .add(WeightedItemData.create(WeaponItemsME.DALISH_ROYAL_HEAVY_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.DALISH_ROYAL_ROUND_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.DALISH_BARDING_HEAVY_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/EreborNpcDataPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/EreborNpcDataPool.java new file mode 100644 index 0000000000..7014ae05e2 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/EreborNpcDataPool.java @@ -0,0 +1,340 @@ +package net.sevenstars.middleearth.registries.content.npcs.pools; + +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.item.Items; +import net.minecraft.registry.RegistryKey; +import net.sevenstars.middleearth.block.registration.ModDecorativeBlocks; +import net.sevenstars.middleearth.item.EquipmentItemsME; +import net.sevenstars.middleearth.item.ToolItemsME; +import net.sevenstars.middleearth.item.WeaponItemsME; +import net.sevenstars.middleearth.item.utils.armor.backAttachments.BackAttachmentsME; +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.registries.content.npcs.NpcRegistry; +import net.sevenstars.middleearth.registries.content.races.RaceRegistry; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.npcs.NpcData; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedGearData; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedItemData; +import net.sevenstars.middleearth.resources.datas.npcs.data.GearSlotPool; + +import java.util.List; + +public class EreborNpcDataPool { + private final static RegistryKey FACTION = FactionRegistry.LONGBEARDS_EREBOR; + + private final static int LIGHT_BLUE = 0x4b6274; + private final static int LIGHT_RED = 0x7f4442; + private final static int DARK_RED = 0x56302d; + private final static int DARK_BROWN = 0x3b291e; + + public final static NpcData PEASANT; + public final static NpcData MINER; + public final static NpcData MILITIA; + public final static NpcData SOLDIER; + public final static NpcData ARCHER; + public final static NpcData ELITE; + public final static NpcData VETERAN; + public final static NpcData GATEWARDEN; + public final static NpcData LEADER; + + public static List fetchAll() { + return List.of( + new NpcRegistry.RegisterableNpcData(NpcRegistry.EREBOR_PEASANT, PEASANT), + new NpcRegistry.RegisterableNpcData(NpcRegistry.EREBOR_MINER, MINER), + new NpcRegistry.RegisterableNpcData(NpcRegistry.EREBOR_MILITIA, MILITIA), + new NpcRegistry.RegisterableNpcData(NpcRegistry.EREBOR_SOLDIER, SOLDIER), + new NpcRegistry.RegisterableNpcData(NpcRegistry.EREBOR_ARCHER, ARCHER), + new NpcRegistry.RegisterableNpcData(NpcRegistry.EREBOR_ELITE, ELITE), + new NpcRegistry.RegisterableNpcData(NpcRegistry.EREBOR_VETERAN, VETERAN), + new NpcRegistry.RegisterableNpcData(NpcRegistry.EREBOR_GATEWARDEN, GATEWARDEN), + new NpcRegistry.RegisterableNpcData(NpcRegistry.EREBOR_LEADER, LEADER) + ); + } + + static { + PEASANT = new NpcData(NpcRegistry.EREBOR_PEASANT.getValue(), RaceRegistry.DWARF, FACTION, TexturePresetsRegistry.LONGBEARDS_EREBOR_DWARF, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.WOVEN_HAT).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.BYCOCKET).withColor(DARK_RED).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.DWARVEN_MINER_HELMET)) + .add(WeightedItemData.create()) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(Items.WOODEN_HOE)) + .add(WeightedItemData.create(Items.WHEAT)) + .add(WeightedItemData.create(Items.WOODEN_SHOVEL)) + .add(WeightedItemData.create(ModDecorativeBlocks.WATERING_CAN.asItem())) + .add(WeightedItemData.create(Items.AIR)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + MINER = new NpcData(NpcRegistry.EREBOR_MINER.getValue(), RaceRegistry.DWARF, FACTION, TexturePresetsRegistry.LONGBEARDS_EREBOR_DWARF, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.WOVEN_HAT).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.BYCOCKET).withColor(DARK_RED).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.DWARVEN_MINER_HELMET)) + .add(WeightedItemData.create()) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.DWARVEN_GAMBESON).withColor(LIGHT_RED)) + .add(WeightedItemData.create(EquipmentItemsME.DWARVEN_MINER_GAMBESON).withColor(LIGHT_RED)) + .add(WeightedItemData.create(EquipmentItemsME.DWARVEN_GAMBESON).withColor(LIGHT_RED).withCape(BackAttachmentsME.SURCOAT, DARK_BROWN)) + .add(WeightedItemData.create(EquipmentItemsME.DWARVEN_MINER_GAMBESON).withColor(LIGHT_RED).withCape(BackAttachmentsME.SURCOAT, DARK_BROWN)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.LONGBEARD_LEATHER_LEGGINGS).withColor(DARK_RED)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.DWARVEN_BOOTS).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.DWARVEN_REINFORCED_BOOTS)) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(ToolItemsME.KHAZAD_STEEL_PICKAXE)) + .add(WeightedItemData.create(ToolItemsME.KHAZAD_STEEL_AXE)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + MILITIA = new NpcData(NpcRegistry.EREBOR_MILITIA.getValue(), RaceRegistry.DWARF, FACTION, TexturePresetsRegistry.LONGBEARDS_EREBOR_DWARF, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.LONGBEARD_SEGMENTED_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_LEATHER_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_BRACED_LEATHER_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_NASAL_LEATHER_HELMET)) + .add(WeightedItemData.create()) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.LONGBEARD_PARTISAN_OUTFIT).withColor(LIGHT_RED).withCape(BackAttachmentsME.SURCOAT, LIGHT_BLUE)) + + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.LONGBEARD_LEATHER_LEGGINGS).withColor(LIGHT_RED)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.DWARVEN_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.EREBOR_SWORD)) + .add(WeightedItemData.create(WeaponItemsME.EREBOR_AXE)) + .add(WeightedItemData.create(WeaponItemsME.KHAZAD_STEEL_SWORD)) + .add(WeightedItemData.create(WeaponItemsME.KHAZAD_STEEL_SPEAR)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.HEATER_SHIELD)) + .add(WeightedItemData.create(Items.AIR)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + SOLDIER = new NpcData(NpcRegistry.EREBOR_SOLDIER.getValue(), RaceRegistry.DWARF, FACTION, TexturePresetsRegistry.LONGBEARDS_EREBOR_DWARF_SOLDIER, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_HELMET).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_MAIL_COIF).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.LONGBEARD_SEGMENTED_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_LEATHER_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_BRACED_LEATHER_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_NASAL_LEATHER_HELMET)) + .add(WeightedItemData.create()) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_PADDED_MAIL_HAUBERK).withCape(BackAttachmentsME.EREBOR_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_PADDED_MAIL_HAUBERK).withCape(BackAttachmentsME.SURCOAT, LIGHT_BLUE)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_LONG_COAT).withColor(LIGHT_RED)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_LONG_COAT).withColor(LIGHT_RED).withCape(BackAttachmentsME.SURCOAT, LIGHT_BLUE)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_BRAWLER_CHESTPLATE).withColor(LIGHT_BLUE)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_BRAWLER_CHESTPLATE).withColor(DARK_RED).withCape(BackAttachmentsME.EREBOR_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_REINFORCED_LEATHER_HAUBERK).withColor(LIGHT_BLUE)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_REINFORCED_COAT).withColor(LIGHT_BLUE).withCape(BackAttachmentsME.SURCOAT, LIGHT_BLUE)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_LEATHER_LEGGINGS).withColor(LIGHT_RED).withWeight(5)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_MAIL_COAT).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_MAIL_LEGGINGS)) + .add(WeightedItemData.create(EquipmentItemsME.LONGBEARD_LEATHER_LEGGINGS).withColor(LIGHT_RED)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.EREBOR_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.EREBOR_SWORD)) + .add(WeightedItemData.create(WeaponItemsME.EREBOR_AXE)) + .add(WeightedItemData.create(WeaponItemsME.EREBOR_SPEAR)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.EREBOR_SHIELD).withWeight(4)) + .add(WeightedItemData.create(WeaponItemsME.EREBOR_CROSS_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.ROUND_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.HEATER_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + ARCHER = new NpcData(NpcRegistry.EREBOR_ARCHER.getValue(), RaceRegistry.DWARF, FACTION, TexturePresetsRegistry.LONGBEARDS_EREBOR_DWARF_SOLDIER, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_HELMET).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_MAIL_COIF).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.LONGBEARD_SEGMENTED_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_LEATHER_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_BRACED_LEATHER_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_NASAL_LEATHER_HELMET)) + .add(WeightedItemData.create()) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_PADDED_MAIL_HAUBERK).withCape(BackAttachmentsME.EREBOR_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_PADDED_MAIL_HAUBERK).withCape(BackAttachmentsME.SURCOAT, LIGHT_BLUE)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_LONG_COAT).withColor(LIGHT_RED)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_LONG_COAT).withColor(LIGHT_RED).withCape(BackAttachmentsME.SURCOAT, LIGHT_BLUE)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_BRAWLER_CHESTPLATE).withColor(LIGHT_BLUE)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_BRAWLER_CHESTPLATE).withColor(DARK_RED).withCape(BackAttachmentsME.EREBOR_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_REINFORCED_LEATHER_HAUBERK).withColor(LIGHT_BLUE)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_REINFORCED_COAT).withColor(LIGHT_BLUE).withCape(BackAttachmentsME.SURCOAT, LIGHT_BLUE)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_LEATHER_LEGGINGS).withColor(LIGHT_RED).withWeight(5)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_MAIL_COAT).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_MAIL_LEGGINGS)) + .add(WeightedItemData.create(EquipmentItemsME.LONGBEARD_LEATHER_LEGGINGS).withColor(LIGHT_RED)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.EREBOR_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.EREBOR_BOW).withWeight(3)) + .add(WeightedItemData.create(Items.BOW)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + ELITE = new NpcData(NpcRegistry.EREBOR_ELITE.getValue(), RaceRegistry.DWARF, FACTION, TexturePresetsRegistry.LONGBEARDS_EREBOR_DWARF_SOLDIER, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_GUARD_HELMET).withWeight(8)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_GILDED_MAIL_COIF).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_CAPTAIN_HELMET)) + .add(WeightedItemData.create()) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_BRAWLER_CHESTPLATE).withColor(DARK_RED).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_BRAWLER_CHESTPLATE).withColor(DARK_RED).withCape(BackAttachmentsME.EREBOR_CAPE)) + + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_BRAWLER_CHESTPLATE).withColor(LIGHT_BLUE).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_BRAWLER_CHESTPLATE).withColor(LIGHT_BLUE).withCape(BackAttachmentsME.EREBOR_CAPE)) + + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_PLATE_CHESTPLATE).withCape(BackAttachmentsME.EREBOR_CAPE).withWeight(3)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_LEATHER_LEGGINGS).withColor(DARK_RED)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_MAIL_LEGGINGS)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.DWARVEN_BOOTS).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_PLATE_BOOTS)) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.EREBOR_NOBLE_SWORD).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.EREBOR_NOBLE_AXE).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.EREBOR_NOBLE_LONGSWORD)) + .add(WeightedItemData.create(WeaponItemsME.EREBOR_NOBLE_SPEAR)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.EREBOR_REINFORCED_TOWER_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.EREBOR_REINFORCED_SHIELD).withWeight(5)) + .add(WeightedItemData.create(WeaponItemsME.EREBOR_SHIELD).withWeight(4)) + .add(WeightedItemData.create(WeaponItemsME.EREBOR_CROSS_SHIELD)) + .add(WeightedItemData.create(Items.AIR).withWeight(5)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + VETERAN = new NpcData(NpcRegistry.EREBOR_VETERAN.getValue(), RaceRegistry.DWARF, FACTION, TexturePresetsRegistry.LONGBEARDS_EREBOR_DWARF_SOLDIER, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_PLATE_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_GUARD_HELMET)) + .add(WeightedItemData.create()) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_PLATE_CHESTPLATE)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_PLATE_CHESTPLATE).withCape(BackAttachmentsME.SURCOAT, LIGHT_BLUE)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_PLATE_LEGGINGS)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_SCALE_COAT)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.DWARVEN_BOOTS).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_PLATE_BOOTS)) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.EREBOR_NOBLE_SWORD).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.EREBOR_NOBLE_AXE).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.EREBOR_NOBLE_LONGSWORD)) + .add(WeightedItemData.create(WeaponItemsME.EREBOR_NOBLE_SPEAR)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.EREBOR_REINFORCED_TOWER_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.EREBOR_REINFORCED_SHIELD).withWeight(5)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + GATEWARDEN = new NpcData(NpcRegistry.EREBOR_GATEWARDEN.getValue(), RaceRegistry.DWARF, FACTION, TexturePresetsRegistry.LONGBEARDS_EREBOR_DWARF_SOLDIER, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_GATEWARDEN_HELMET)) + .add(WeightedItemData.create()) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_GATEWARDEN_CHESTPLATE).withCape(BackAttachmentsME.EREBOR_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_GATEWARDEN_CHESTPLATE).withCape(BackAttachmentsME.SURCOAT, LIGHT_BLUE)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_GATEWARDEN_LEGGINGS)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_GATEWARDEN_BOOTS)) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.EREBOR_NOBLE_SWORD).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.EREBOR_NOBLE_AXE).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.EREBOR_NOBLE_SPEAR).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.EREBOR_NOBLE_LONGSWORD)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.EREBOR_ORNAMENTED_TOWER_SHIELD).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.EREBOR_REINFORCED_TOWER_SHIELD).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.EREBOR_BUCKLER_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + + LEADER = new NpcData(NpcRegistry.EREBOR_LEADER.getValue(), RaceRegistry.DWARF, FACTION, TexturePresetsRegistry.LONGBEARDS_EREBOR_MIGHTY_DWARF, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_CAPTAIN_HELMET)) + .add(WeightedItemData.create()) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_PLATE_CHESTPLATE).withCape(BackAttachmentsME.EREBOR_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_PLATE_CHESTPLATE).withCape(BackAttachmentsME.SURCOAT, LIGHT_BLUE)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_SCALE_COAT).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_MAIL_COAT).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_PLATE_LEGGINGS)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.EREBOR_PLATE_BOOTS).withWeight(3)) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.EREBOR_NOBLE_SWORD).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.EREBOR_NOBLE_AXE).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.EREBOR_NOBLE_LONGSWORD)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.EREBOR_ORNAMENTED_TOWER_SHIELD).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.EREBOR_BUCKLER_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/GondorianNpcDataPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/GondorianNpcDataPool.java new file mode 100644 index 0000000000..917c79edda --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/GondorianNpcDataPool.java @@ -0,0 +1,310 @@ +package net.sevenstars.middleearth.registries.content.npcs.pools; + +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.item.Items; +import net.minecraft.registry.RegistryKey; +import net.sevenstars.middleearth.item.EquipmentItemsME; +import net.sevenstars.middleearth.item.ToolItemsME; +import net.sevenstars.middleearth.item.WeaponItemsME; +import net.sevenstars.middleearth.item.utils.armor.backAttachments.BackAttachmentsME; +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.registries.content.npcs.NpcRegistry; +import net.sevenstars.middleearth.registries.content.races.RaceRegistry; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.npcs.NpcData; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedGearData; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedItemData; +import net.sevenstars.middleearth.resources.datas.npcs.data.GearSlotPool; + +import java.util.List; + +public class GondorianNpcDataPool { + private final static RegistryKey FACTION = FactionRegistry.GONDOR; + + private final static int LIGHT_BLUE = 0x2b3965; + private final static int DARK_BLUE = 0x182038; + private final static int LIGHT_ORANGE = 0xc67640; + private final static int DARK_ORANGE = 0x82492c; + private final static int LIGHT_BEIGE = 0xe8cb9b; + private final static int DARK_BEIGE = 0xa89371; + private final static int LIGHT_GRAY = 0x68697d; + private final static int DARK_GRAY = 0x555666; + private final static int LIGHT_GREEN = 0x435353; + private final static int DARK_GREEN = 0x262f2f; + + public final static NpcData PEASANT; + public final static NpcData MILITIA; + public final static NpcData SOLDIER; + public final static NpcData KNIGHT; + public final static NpcData VETERAN; + public final static NpcData FOUNTAIN_GUARD; + public final static NpcData CITADEL_GUARD; + public final static NpcData KING_GUARD; + public final static NpcData LEADER; + + public static List fetchAll() { + return List.of( + new NpcRegistry.RegisterableNpcData(NpcRegistry.GONDOR_PEASANT, PEASANT), + new NpcRegistry.RegisterableNpcData(NpcRegistry.GONDOR_MILITIA, MILITIA), + new NpcRegistry.RegisterableNpcData(NpcRegistry.GONDOR_SOLDIER, SOLDIER), + new NpcRegistry.RegisterableNpcData(NpcRegistry.GONDOR_KNIGHT, KNIGHT), + new NpcRegistry.RegisterableNpcData(NpcRegistry.GONDOR_VETERAN, VETERAN), + new NpcRegistry.RegisterableNpcData(NpcRegistry.GONDOR_FOUNTAIN_GUARD, FOUNTAIN_GUARD), + new NpcRegistry.RegisterableNpcData(NpcRegistry.GONDOR_CITADEL_GUARD, CITADEL_GUARD), + new NpcRegistry.RegisterableNpcData(NpcRegistry.GONDOR_KING_GUARD, KING_GUARD), + new NpcRegistry.RegisterableNpcData(NpcRegistry.GONDOR_LEADER, LEADER) + ); + } + + static { + PEASANT = new NpcData(NpcRegistry.GONDOR_PEASANT.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.GONDOR_PEASANT, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.STRAW_HAT)) + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_SKULLCAP)) + .add(WeightedItemData.create(EquipmentItemsME.BYCOCKET)) + .add(WeightedItemData.create().withWeight(5)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(Items.STONE_AXE)) + .add(WeightedItemData.create(ToolItemsME.SMITHING_HAMMER)) + .add(WeightedItemData.create(ToolItemsME.PIPE)) + .add(WeightedItemData.create().withWeight(3)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + MILITIA = new NpcData(NpcRegistry.GONDOR_MILITIA.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.GONDOR_PEASANT, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_SKULLCAP)) + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON_CAP)) + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_SKULLCAP).withColor(DARK_BEIGE)) + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON_CAP).withColor(DARK_BEIGE)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withColor(LIGHT_BLUE).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withColor(DARK_BLUE)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withColor(LIGHT_ORANGE)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withColor(DARK_ORANGE)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withColor(LIGHT_BEIGE)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withColor(DARK_BEIGE)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ARMING_SKIRT)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_SKIRT).withColor(DARK_BLUE)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_SKIRT).withColor(DARK_ORANGE)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_SKIRT).withColor(DARK_BEIGE)) + .add(WeightedItemData.create().withWeight(2)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GONDORIAN_BOOTS)) + .add(WeightedItemData.create().withWeight(2)) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.BRONZE_SPEAR).withWeight(4)) + .add(WeightedItemData.create(WeaponItemsME.BRONZE_SWORD).withWeight(3)) + .add(WeightedItemData.create(ToolItemsME.BRONZE_AXE).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.IRON_SPEAR).withWeight(2)) + .add(WeightedItemData.create(Items.IRON_SWORD)) + .add(WeightedItemData.create(Items.IRON_AXE)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.KITE_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.HEATER_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.ROUND_SHIELD)) + .add(WeightedItemData.create().withWeight(5)) + ), + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.KETTLE_HAT).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON_COWL)) + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON_COWL).withColor(LIGHT_GRAY)) + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON_COWL).withColor(DARK_GRAY)) + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON_COWL).withColor(LIGHT_GREEN)) + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON_COWL).withColor(DARK_GREEN)) + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON_CAP)) + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON_CAP).withColor(LIGHT_GRAY)) + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON_CAP).withColor(DARK_GRAY)) + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON_CAP).withColor(LIGHT_GREEN)) + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON_CAP).withColor(DARK_GREEN)) + .add(WeightedItemData.create(EquipmentItemsME.OPEN_FACE_HELMET)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON).withColor(LIGHT_GRAY)) + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON).withColor(DARK_GRAY)) + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON).withColor(LIGHT_GREEN)) + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON).withColor(DARK_GREEN)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GONDORIAN_MAIL_COAT)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_SKIRT).withColor(DARK_GRAY).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_SKIRT).withColor(DARK_GREEN).withWeight(4)) + .add(WeightedItemData.create().withWeight(7)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GONDORIAN_BOOTS)) + .add(WeightedItemData.create().withWeight(2)) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.BRONZE_SPEAR).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.BRONZE_SWORD)) + .add(WeightedItemData.create(ToolItemsME.BRONZE_AXE)) + .add(WeightedItemData.create(WeaponItemsME.IRON_SPEAR).withWeight(2)) + .add(WeightedItemData.create(Items.IRON_SWORD)) + .add(WeightedItemData.create(Items.IRON_AXE)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.KITE_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.HEATER_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.ROUND_SHIELD)) + .add(WeightedItemData.create().withWeight(5)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + SOLDIER = new NpcData(NpcRegistry.GONDOR_SOLDIER.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.GONDOR_SOLDIER, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GONDORIAN_CABASSET_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.GONDORIAN_SOLDIER_HELMET).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.KETTLE_HAT)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GONDORIAN_TABBARD)) + .add(WeightedItemData.create(EquipmentItemsME.GONDORIAN_LEATHER_CUIRASS)) + .add(WeightedItemData.create(EquipmentItemsME.GONDORIAN_LEATHER_CHESTPLATE)) + .add(WeightedItemData.create(EquipmentItemsME.GONDORIAN_SOLDIER_CHESTPLATE)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GONDORIAN_MAIL_COAT)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_SKIRT).withColor(DARK_GRAY).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_SKIRT).withColor(DARK_GREEN).withWeight(2)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_BOOTS))) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_SWORD)) + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_AXE)) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create()) + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + KNIGHT = new NpcData(NpcRegistry.GONDOR_KNIGHT.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.GONDOR_SOLDIER, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_PLATE_HELMET))) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GONDORIAN_SOLDIER_CHESTPLATE)) + .add(WeightedItemData.create(EquipmentItemsME.GONDORIAN_PLATE_CHESTPLATE)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GONDORIAN_MAIL_COAT).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.GONDORIAN_PLATE_LEGGINGS)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_SWORD)) + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_AXE)) + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_LONGSWORD)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_SHIELD)) + ), + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_PLATE_HELMET))) + .add(EquipmentSlot.CHEST, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_PLATE_CHESTPLATE))) + .add(EquipmentSlot.LEGS, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_PLATE_LEGGINGS))) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_SPEAR)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_TOWER_SHIELD)) + .add(WeightedItemData.create().withWeight(3)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + VETERAN = new NpcData(NpcRegistry.GONDOR_VETERAN.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.GONDOR_SOLDIER, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GONDORIAN_PLATE_HELMET).withWeight(10)) + .add(WeightedItemData.create(EquipmentItemsME.GONDORIAN_CAPTAIN_HELMET)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_PLATE_CHESTPLATE))) + .add(EquipmentSlot.LEGS, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_PLATE_LEGGINGS))) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_PLATE_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_NOBLE_SWORD)) + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_NOBLE_AXE)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_HERO_SHIELD)) + .add(WeightedItemData.create().withWeight(2)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + CITADEL_GUARD = new NpcData(NpcRegistry.GONDOR_CITADEL_GUARD.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.GONDOR_SOLDIER, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_CITADEL_GUARD_HELMET))) + .add(EquipmentSlot.CHEST, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_CITADEL_GUARD_CHESTPLATE))) + .add(EquipmentSlot.LEGS, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_CITADEL_GUARD_LEGGINGS))) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_CITADEL_GUARD_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_NOBLE_SWORD)) + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_NOBLE_AXE)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_KNIGHT_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + FOUNTAIN_GUARD = new NpcData(NpcRegistry.GONDOR_FOUNTAIN_GUARD.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.GONDOR_SOLDIER, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_FOUNTAIN_GUARD_HELMET))) + .add(EquipmentSlot.CHEST, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_FOUNTAIN_GUARD_CHESTPLATE))) + .add(EquipmentSlot.LEGS, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_FOUNTAIN_GUARD_LEGGINGS))) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_FOUNTAIN_GUARD_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create(WeightedItemData.create(WeaponItemsME.GONDORIAN_FOUNTAIN_GUARD_SPEAR))) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + KING_GUARD = new NpcData(NpcRegistry.GONDOR_KING_GUARD.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.GONDOR_SOLDIER, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_KINGS_GUARD_HELMET))) + .add(EquipmentSlot.CHEST, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_KINGS_GUARD_CHESTKPLATE))) + .add(EquipmentSlot.LEGS, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_KINGS_GUARD_LEGGINGS))) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_KINGS_GUARD_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_NOBLE_SPEAR).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_NOBLE_LONGSWORD)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_KINGS_GUARD_TOWER_SHIELD).withWeight(8)) + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_TOWER_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + LEADER = new NpcData(NpcRegistry.GONDOR_LEADER.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.GONDOR_LORD, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_CAPTAIN_HELMET))) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GONDORIAN_PLATE_CHESTPLATE).withCape(BackAttachmentsME.GONDORIAN_HERO_CAPE).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.GONDORIAN_KINGS_GUARD_CHESTKPLATE).withCape(BackAttachmentsME.GONDORIAN_HERO_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.GONDORIAN_CITADEL_GUARD_CHESTPLATE).withCape(BackAttachmentsME.GONDORIAN_HERO_CAPE)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_CITADEL_GUARD_CHESTPLATE))) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GONDORIAN_KINGS_GUARD_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_NOBLE_SWORD)) + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_NOBLE_AXE)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_HERO_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_ORNAMENTED_KNIGHT_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + } +} \ No newline at end of file diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/GundabadNpcDataPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/GundabadNpcDataPool.java new file mode 100644 index 0000000000..5274472afd --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/GundabadNpcDataPool.java @@ -0,0 +1,354 @@ +package net.sevenstars.middleearth.registries.content.npcs.pools; + +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.item.Items; +import net.minecraft.registry.RegistryKey; +import net.sevenstars.middleearth.item.EquipmentItemsME; +import net.sevenstars.middleearth.item.ToolItemsME; +import net.sevenstars.middleearth.item.WeaponItemsME; +import net.sevenstars.middleearth.item.utils.armor.backAttachments.BackAttachmentsME; +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.registries.content.npcs.NpcRegistry; +import net.sevenstars.middleearth.registries.content.races.RaceRegistry; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.npcs.NpcData; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedGearData; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedItemData; +import net.sevenstars.middleearth.resources.datas.npcs.data.GearSlotPool; + +import java.util.List; + +public class GundabadNpcDataPool { + private final static RegistryKey FACTION = FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD; + + private static List allColors; + private static final int DARK_PURPLE = 0x3c3135; + private static final int DARK_BROWN = 0x4a3c34; + + public final static NpcData SNAGA; + public final static NpcData MILITIA; + public final static NpcData SCOUT; + public final static NpcData RIDER; + public final static NpcData WARRIOR; + public final static NpcData VETERAN; + public final static NpcData LEADER; + + public static List fetchAll() { + return List.of( + new NpcRegistry.RegisterableNpcData(NpcRegistry.GUNDABAD_SNAGA, SNAGA), + new NpcRegistry.RegisterableNpcData(NpcRegistry.GUNDABAD_MILITIA, MILITIA), + new NpcRegistry.RegisterableNpcData(NpcRegistry.GUNDABAD_SCOUT, SCOUT), + new NpcRegistry.RegisterableNpcData(NpcRegistry.GUNDABAD_RIDER, RIDER), + new NpcRegistry.RegisterableNpcData(NpcRegistry.GUNDABAD_WARRIOR, WARRIOR), + new NpcRegistry.RegisterableNpcData(NpcRegistry.GUNDABAD_VETERAN, VETERAN), + new NpcRegistry.RegisterableNpcData(NpcRegistry.GUNDABAD_LEADER, LEADER) + ); + } + + static { + allColors = List.of( + DARK_PURPLE, + DARK_BROWN + ); + + SNAGA = new NpcData(NpcRegistry.GUNDABAD_SNAGA.getValue(), RaceRegistry.ORC, FACTION, TexturePresetsRegistry.GUNDABAD_GOBLIN, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_SKULLCAP).withColors(allColors).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.HOOD).withColors(allColors).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COIF)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_CAPE).withColors(allColors)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEG_BRACER).withColors(allColors)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.ORCISH_SANDALS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.CRUDE_SPEAR).withWeight(4)) + .add(WeightedItemData.create(ToolItemsME.CRUDE_AXE).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.CRUDE_DAGGER).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.ORC_KNIFE).withWeight(2)) + .add(WeightedItemData.create(ToolItemsME.CRUDE_PICKAXE)) + .add(WeightedItemData.create(ToolItemsME.CRUDE_HOE)) + .add(WeightedItemData.create(ToolItemsME.CRUDE_SHOVEL)) + .add(WeightedItemData.create(WeaponItemsME.CRUDE_FALCHION)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_WOODEN_SHIELD)) + .add(WeightedItemData.create(Items.AIR).withWeight(3)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + MILITIA = new NpcData(NpcRegistry.GUNDABAD_MILITIA.getValue(), RaceRegistry.ORC, FACTION, TexturePresetsRegistry.GUNDABAD_GOBLIN, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_SKULLCAP_HELMET).withColors(allColors).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_SEEKER_HELMET).withColors(allColors).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COIF)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_MAIL_COIF)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_MAIL_HAUBERK)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_MAIL_HAUBERK).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_MAIL_HAUBERK).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_LEGGINGS).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEG_BRACER).withColors(allColors)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_SANDALS)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LACED_BOOTS).withColors(allColors)) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_SPEAR).withWeight(4)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_FALCHION).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_SHANK).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.ORC_KNIFE).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.CRUDE_FALCHION)) + .add(WeightedItemData.create(ToolItemsME.CRUDE_AXE)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_WOODEN_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_PAINTED_WOODEN_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_PEAKS_PAINTED_WOODEN_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_GREAT_EYE_PAINTED_WOODEN_SHIELD)) + .add(WeightedItemData.create(Items.AIR).withWeight(2)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + RIDER = new NpcData(NpcRegistry.GUNDABAD_RIDER.getValue(), RaceRegistry.ORC, FACTION, TexturePresetsRegistry.GUNDABAD_GOBLIN, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_SKULLCAP).withColors(allColors).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.HOOD).withColors(allColors).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COIF)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_CAPE).withColors(allColors)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEG_BRACER).withColors(allColors)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.ORCISH_SANDALS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.CRUDE_SPEAR).withWeight(4)) + .add(WeightedItemData.create(ToolItemsME.CRUDE_AXE).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.CRUDE_DAGGER).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.ORC_KNIFE).withWeight(2)) + .add(WeightedItemData.create(ToolItemsME.CRUDE_PICKAXE)) + .add(WeightedItemData.create(ToolItemsME.CRUDE_HOE)) + .add(WeightedItemData.create(ToolItemsME.CRUDE_SHOVEL)) + .add(WeightedItemData.create(WeaponItemsME.CRUDE_FALCHION)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_WOODEN_SHIELD)) + .add(WeightedItemData.create(Items.AIR).withWeight(3)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + SCOUT = new NpcData(NpcRegistry.GUNDABAD_SCOUT.getValue(), RaceRegistry.ORC, FACTION, TexturePresetsRegistry.GUNDABAD_GOBLIN, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR).withWeight(8)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_SKULLCAP_HELMET).withColors(allColors).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COIF)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_MAIL_COIF)) + .add(WeightedItemData.create(EquipmentItemsME.HOOD).withColors(allColors)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_MAIL_HAUBERK)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_MAIL_HAUBERK).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_MAIL_HAUBERK).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_LEGGINGS).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEG_BRACER).withColors(allColors)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_SANDALS)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LACED_BOOTS).withColors(allColors)) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_BOW).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.ORCISH_BOW)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + WARRIOR = new NpcData(NpcRegistry.GUNDABAD_WARRIOR.getValue(), RaceRegistry.URUK, FACTION, TexturePresetsRegistry.GUNDABAD_HOBGOBLIN, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_SOLDIER_HELMET).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_SCREECHER_HELMET).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_SKULLCAP_HELMET).withColors(allColors).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_SEEKER_HELMET).withColors(allColors).withWeight(3)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_SCALE_COAT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_SCALE_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_SCALE_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_VEST).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_VEST).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_VEST).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + + + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_LEGGINGS).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEG_BRACER).withColors(allColors)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_SANDALS)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LACED_BOOTS).withColors(allColors)) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_SPEAR).withWeight(4)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_FALCHION).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_AXE).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_ELITE_BATTLEAXE)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_ELITE_CLEAVER)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_WOODEN_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_PAINTED_WOODEN_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_PEAKS_PAINTED_WOODEN_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_GREAT_EYE_PAINTED_WOODEN_SHIELD)) + .add(WeightedItemData.create(Items.AIR).withWeight(2)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + VETERAN = new NpcData(NpcRegistry.GUNDABAD_VETERAN.getValue(), RaceRegistry.URUK, FACTION, TexturePresetsRegistry.GUNDABAD_HOBGOBLIN, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_LONG_HORN_HELMET).withColors(allColors).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_SOLDIER_HELMET).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_SCREECHER_HELMET).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_SMALL_HORN_HELMET).withWeight(2)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_CHESTPLATE)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_CHESTPLATE).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_CHESTPLATE).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_SCALE_COAT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_SCALE_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_SCALE_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_VEST).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_VEST).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_VEST).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + + + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_MAIL_COAT)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_LEGGINGS).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_MAIL_COAT)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATED_BOOTS)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_LACED_BOOTS).withColors(allColors)) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_SPEAR).withWeight(4)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_FALCHION).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_AXE).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_ELITE_BATTLEAXE)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_ELITE_CLEAVER)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_HEAVY_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_REINFORCED_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + LEADER = new NpcData(NpcRegistry.GUNDABAD_LEADER.getValue(), RaceRegistry.URUK, FACTION, TexturePresetsRegistry.GUNDABAD_HOBGOBLIN, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_LARGE_CREST_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_CAPTAIN_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_CRESTED_HELMET)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_CHESTPLATE).withWeight(2).withCape(BackAttachmentsME.CAPE, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_CHESTPLATE).withWeight(2).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_MAIL_COAT))) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATED_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_ELITE_BATTLEAXE).withWeight(4)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_ELITE_SCIMITAR).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_ELITE_SPEAR).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_ELITE_CLEAVER).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_FALCHION)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_HEAVY_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_REINFORCED_SHIELD)) + .add(WeightedItemData.create(Items.AIR).withWeight(2)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/IsengardNpcDataPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/IsengardNpcDataPool.java new file mode 100644 index 0000000000..6dd67ff643 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/IsengardNpcDataPool.java @@ -0,0 +1,309 @@ +package net.sevenstars.middleearth.registries.content.npcs.pools; + +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.item.Items; +import net.minecraft.registry.RegistryKey; +import net.sevenstars.middleearth.item.DecorativeItemsME; +import net.sevenstars.middleearth.item.EquipmentItemsME; +import net.sevenstars.middleearth.item.ToolItemsME; +import net.sevenstars.middleearth.item.WeaponItemsME; +import net.sevenstars.middleearth.item.utils.armor.backAttachments.BackAttachmentsME; +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.registries.content.npcs.NpcRegistry; +import net.sevenstars.middleearth.registries.content.races.RaceRegistry; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.npcs.NpcData; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedGearData; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedItemData; +import net.sevenstars.middleearth.resources.datas.npcs.data.GearSlotPool; + +import java.util.List; + +public class IsengardNpcDataPool { + private final static RegistryKey FACTION = FactionRegistry.ISENGARD; + + private static List allColors; + private static final int DARK = 0x302b28; + private static final int DARK_BROWN = 0x655147; + + public final static NpcData SNAGA; + public final static NpcData WARRIOR; + + public final static NpcData URUK_HAI_SOLDIER; + public final static NpcData URUK_HAI_SCOUT; + public final static NpcData URUK_HAI_VETERAN; + public final static NpcData URUK_HAI_BERSERKER; + public final static NpcData URUK_HAI_LEADER; + + public final static NpcData ORTHANC_GUARD; + + + public static List fetchAll() { + return List.of( + new NpcRegistry.RegisterableNpcData(NpcRegistry.ISENGARD_ORC_SNAGA, SNAGA), + new NpcRegistry.RegisterableNpcData(NpcRegistry.ISENGARD_ORC_WARRIOR, WARRIOR), + new NpcRegistry.RegisterableNpcData(NpcRegistry.ISENGARD_URUK_HAI_SOLDIER, URUK_HAI_SOLDIER), + new NpcRegistry.RegisterableNpcData(NpcRegistry.ISENGARD_URUK_HAI_SCOUT, URUK_HAI_SCOUT), + new NpcRegistry.RegisterableNpcData(NpcRegistry.ISENGARD_URUK_HAI_VETERAN, URUK_HAI_VETERAN), + new NpcRegistry.RegisterableNpcData(NpcRegistry.ISENGARD_URUK_HAI_BERSERKER, URUK_HAI_BERSERKER), + new NpcRegistry.RegisterableNpcData(NpcRegistry.ISENGARD_URUK_HAI_LEADER, URUK_HAI_LEADER), + new NpcRegistry.RegisterableNpcData(NpcRegistry.ISENGARD_ORTHANC_GUARD, ORTHANC_GUARD) + ); + } + + static { + allColors = List.of(DARK, DARK_BROWN); + + ORTHANC_GUARD = new NpcData(NpcRegistry.ISENGARD_ORTHANC_GUARD.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.ISENGARD_HUMAN, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORTHANC_GUARD_HELMET).withWeight(4)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORTHANC_GUARD_CHESTPLATE)) + .add(WeightedItemData.create(EquipmentItemsME.ORTHANC_GUARD_CHESTPLATE).withCape(BackAttachmentsME.ORTHANC_GUARD_CAPE)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORTHANC_GUARD_LEGGINGS)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.ORTHANC_GUARD_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.URUK_HAI_SPEAR)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + SNAGA = new NpcData(NpcRegistry.ISENGARD_ORC_SNAGA.getValue(), RaceRegistry.ORC, FACTION, TexturePresetsRegistry.ISENGARD_ORC, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_LEATHER_SCOUT_CAP).withColors(allColors).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_SKULLCAP).withColors(allColors).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.HOOD).withColors(allColors).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COIF)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_CAPE)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEG_BRACER).withColors(allColors)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.URUK_HAI_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.WOODEN_SPEAR).withWeight(6)) + .add(WeightedItemData.create(WeaponItemsME.CRUDE_SPEAR).withWeight(2)) + .add(WeightedItemData.create(ToolItemsME.CRUDE_AXE).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.CRUDE_DAGGER).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.ORC_KNIFE).withWeight(2)) + .add(WeightedItemData.create(ToolItemsME.CRUDE_PICKAXE)) + .add(WeightedItemData.create(ToolItemsME.CRUDE_HOE)) + .add(WeightedItemData.create(ToolItemsME.CRUDE_SHOVEL)) + .add(WeightedItemData.create(WeaponItemsME.CRUDE_FALCHION)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.MORDOR_WOODEN_SHIELD)) + .add(WeightedItemData.create(Items.AIR).withWeight(3)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + + WARRIOR = new NpcData(NpcRegistry.ISENGARD_ORC_WARRIOR.getValue(), RaceRegistry.ORC, FACTION, TexturePresetsRegistry.ISENGARD_ORC, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_LEATHER_SCOUT_CAP).withColors(allColors).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_LIGHT_HELMET).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_MORDOR_KETTLE_HAT).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_BRACED_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_SALLET)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_LEATHER_CHESTPLATE)) + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_LEATHER_CHESTPLATE).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_LEATHER_CHESTPLATE).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COAT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_REINFORCED_LEATHER_SKIRT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_REINFORCED_STRIP_LEATHER_SKIRT).withColors(allColors)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.URUK_HAI_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.ISENGARD_ORC_CLEAVER).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.ISENGARD_ORC_AXE).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.ISENGARD_ORC_SPEAR).withWeight(4)) + .add(WeightedItemData.create(WeaponItemsME.CRUDE_SPEAR).withWeight(6)) + .add(WeightedItemData.create(ToolItemsME.CRUDE_AXE).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.CRUDE_DAGGER).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.ORC_KNIFE).withWeight(2)) + .add(WeightedItemData.create(ToolItemsME.CRUDE_PICKAXE)) + .add(WeightedItemData.create(ToolItemsME.CRUDE_HOE)) + .add(WeightedItemData.create(ToolItemsME.CRUDE_SHOVEL)) + .add(WeightedItemData.create(WeaponItemsME.CRUDE_FALCHION)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.MORDOR_WOODEN_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_WOODEN_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.ROUND_SHIELD)) + .add(WeightedItemData.create(Items.AIR).withWeight(3)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + URUK_HAI_SOLDIER = new NpcData(NpcRegistry.ISENGARD_URUK_HAI_SOLDIER.getValue(), RaceRegistry.URUK, FACTION, TexturePresetsRegistry.ISENGARD_URUK_HAI, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_PLATE_HELMET).withWeight(5)) + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_LEATHER_SCOUT_CAP).withColors(allColors).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_LIGHT_HELMET).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_REINFORCED_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_SAPPER_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_SOLDIER_HELMET)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_LEATHER_CHESTPLATE)) + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_LEATHER_CHESTPLATE).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_LEATHER_CHESTPLATE).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COAT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_REINFORCED_LEATHER_SKIRT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_REINFORCED_STRIP_LEATHER_SKIRT).withColors(allColors)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.URUK_HAI_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.ISENGARD_ORC_WARBLADE)) + .add(WeightedItemData.create(WeaponItemsME.ISENGARD_ORC_CLEAVER)) + .add(WeightedItemData.create(WeaponItemsME.ISENGARD_ORC_AXE)) + .add(WeightedItemData.create(WeaponItemsME.ISENGARD_ORC_SPEAR)) + + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.URUK_HAI_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.URUK_HAI_S_RUNE_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.URUK_HAI_WHITE_HAND_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.URUK_HAI_WHITE_PALMPRINT_SHIELD)) + .add(WeightedItemData.create(Items.AIR).withWeight(3)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + URUK_HAI_SCOUT = new NpcData(NpcRegistry.ISENGARD_URUK_HAI_SCOUT.getValue(), RaceRegistry.URUK, FACTION, TexturePresetsRegistry.ISENGARD_URUK_HAI, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_LEATHER_SCOUT_CAP).withColors(allColors).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_REINFORCED_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_SOLDIER_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_LIGHT_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_PAINTED_REINFORCED_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_PAINTED_LIGHT_HELMET)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_LEATHER_HAUBERK)) + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_LEATHER_CHESTPLATE)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_MAIL_SKIRT)) + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_MAIL_COAT)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.URUK_HAI_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.URUK_HAI_BOW).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.URUK_HAI_FALCHION)) + .add(WeightedItemData.create(WeaponItemsME.URUK_HAI_SPEAR).withWeight(2)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + URUK_HAI_VETERAN = new NpcData(NpcRegistry.ISENGARD_URUK_HAI_VETERAN.getValue(), RaceRegistry.URUK, FACTION, TexturePresetsRegistry.ISENGARD_URUK_HAI, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_PAINTED_PLATE_HELMET).withWeight(5)) + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_PAINTED_SAPPER_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_PAINTED_SOLDIER_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_COMMANDER_HELMET)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_PLATE_CHESTPLATE)) + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_CUIRASS)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.MAIL_SKIRT))) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.URUK_HAI_PLATE_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.URUK_HAI_AXE).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.URUK_HAI_FALCHION).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.URUK_HAI_WARBLADE)) + .add(WeightedItemData.create(WeaponItemsME.URUK_HAI_SPEAR)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.URUK_HAI_HEATER_SHIELD).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.URUK_HAI_S_RUNE_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.URUK_HAI_WHITE_HAND_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.URUK_HAI_WHITE_PALMPRINT_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + + URUK_HAI_BERSERKER = new NpcData(NpcRegistry.ISENGARD_URUK_HAI_BERSERKER.getValue(), RaceRegistry.URUK, FACTION, TexturePresetsRegistry.ISENGARD_URUK_HAI, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_PAINTED_BERSERKER_HELMET)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColors(allColors)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.URUK_HAI_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.URUK_HAI_FALCHION).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.URUK_HAI_SPEAR).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.URUK_HAI_WARBLADE)) + .add(WeightedItemData.create(WeaponItemsME.URUK_HAI_AXE)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(DecorativeItemsME.TORCH_OF_ORTHANC).withWeight(4)) + .add(WeightedItemData.create(Items.AIR)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + URUK_HAI_LEADER = new NpcData(NpcRegistry.ISENGARD_URUK_HAI_LEADER.getValue(), RaceRegistry.URUK, FACTION, TexturePresetsRegistry.ISENGARD_URUK_HAI, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_PAINTED_COMMANDER_HELMET)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_PLATE_CHESTPLATE).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.URUK_HAI_PLATE_CHESTPLATE).withCape(BackAttachmentsME.CAPE, allColors)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.MAIL_SKIRT))) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.URUK_HAI_PLATE_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.URUK_HAI_AXE).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.URUK_HAI_FALCHION).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.URUK_HAI_WARBLADE)) + .add(WeightedItemData.create(WeaponItemsME.URUK_HAI_SPEAR)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.URUK_HAI_HEATER_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/LorienNpcDataPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/LorienNpcDataPool.java new file mode 100644 index 0000000000..5d4da68054 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/LorienNpcDataPool.java @@ -0,0 +1,189 @@ +package net.sevenstars.middleearth.registries.content.npcs.pools; + +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.item.Items; +import net.minecraft.registry.RegistryKey; +import net.sevenstars.middleearth.item.EquipmentItemsME; +import net.sevenstars.middleearth.item.WeaponItemsME; +import net.sevenstars.middleearth.item.utils.armor.backAttachments.BackAttachmentsME; +import net.sevenstars.middleearth.item.utils.armor.helmetAttachments.HelmetAttachmentsME; +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.registries.content.npcs.NpcRegistry; +import net.sevenstars.middleearth.registries.content.races.RaceRegistry; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.npcs.NpcData; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedGearData; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedItemData; +import net.sevenstars.middleearth.resources.datas.npcs.data.GearSlotPool; + +import java.util.List; + +public class LorienNpcDataPool { + private final static RegistryKey FACTION = FactionRegistry.LOTHLORIEN; + + private final static int LIGHT_BLUE = 0x3a4250; + private final static int DARK_BLUE = 0x252b3a; + + public final static NpcData SENTINEL; + public final static NpcData RANGER; + public final static NpcData WARRIOR; + public final static NpcData KNIGHT; + public final static NpcData GUARD; + public final static NpcData LORD; + + public static List fetchAll() { + return List.of( + new NpcRegistry.RegisterableNpcData(NpcRegistry.LOTHLORIEN_SENTINEL, SENTINEL), + new NpcRegistry.RegisterableNpcData(NpcRegistry.LOTHLORIEN_RANGER, RANGER), + new NpcRegistry.RegisterableNpcData(NpcRegistry.LOTHLORIEN_WARRIOR, WARRIOR), + new NpcRegistry.RegisterableNpcData(NpcRegistry.LOTHLORIEN_KNIGHT, KNIGHT), + new NpcRegistry.RegisterableNpcData(NpcRegistry.LOTHLORIEN_GUARD, GUARD), + new NpcRegistry.RegisterableNpcData(NpcRegistry.LOTHLORIEN_LORD, LORD) + ); + } + + static { + SENTINEL = new NpcData(NpcRegistry.LOTHLORIEN_SENTINEL.getValue(), RaceRegistry.ELF, FACTION, TexturePresetsRegistry.LOTHLORIEN_ELF, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.LORIEN_DIADEM)) + .add(WeightedItemData.create(EquipmentItemsME.LORIEN_DIADEM).withHood(HelmetAttachmentsME.LORIEN_MARCHWARDEN_HOOD)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ELVEN_ARMING_COAT).withCape(BackAttachmentsME.LORIEN_MARCHWARDEN_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.LORIEN_MARCHWARDEN_CAPE)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.ELVEN_ARMING_SKIRT))) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.SHOES))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create(WeightedItemData.create(WeaponItemsME.LORIEN_SWORD))) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create(WeightedItemData.create(WeaponItemsME.LORIEN_SHIELD))) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + RANGER = new NpcData(NpcRegistry.LOTHLORIEN_RANGER.getValue(), RaceRegistry.ELF, FACTION, TexturePresetsRegistry.LOTHLORIEN_ELF, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.LORIEN_MARCHWARDEN_HOOD)) + .add(WeightedItemData.create(EquipmentItemsME.LORIEN_LEATHER_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.LORIEN_DIADEM)) + .add(WeightedItemData.create(EquipmentItemsME.LORIEN_DIADEM).withHood(HelmetAttachmentsME.LORIEN_MARCHWARDEN_HOOD, false)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.LORIEN_ARMING_COAT).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.LORIEN_ARMING_COAT).withCape(BackAttachmentsME.LORIEN_MARCHWARDEN_CAPE)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.LORIEN_ARMING_SKIRT))) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.ELVEN_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.LORIEN_BOW)) + .add(WeightedItemData.create(WeaponItemsME.LORIEN_LONGBOW)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + WARRIOR = new NpcData(NpcRegistry.LOTHLORIEN_WARRIOR.getValue(), RaceRegistry.ELF, FACTION, TexturePresetsRegistry.LOTHLORIEN_ELF, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.LORIEN_LEATHER_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.LORIEN_DIADEM)) + .add(WeightedItemData.create(EquipmentItemsME.LORIEN_DIADEM).withHood(HelmetAttachmentsME.LORIEN_MARCHWARDEN_HOOD)) + .add(WeightedItemData.create(EquipmentItemsME.LORIEN_SHORT_MAIL_COIF_DIADEM)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.LORIEN_MAIL_HAUBERK).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.LORIEN_MARCHWARDEN_MAIL_HAUBERK).withCape(BackAttachmentsME.GALADHRIM_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.LORIEN_MARCHWARDEN_MAIL_HAUBERK).withCape(BackAttachmentsME.LORIEN_MARCHWARDEN_CAPE)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.LORIEN_ARMING_SKIRT))) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.ELVEN_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.LORIEN_GLAIVE)) + .add(WeightedItemData.create(WeaponItemsME.LORIEN_SPEAR)) + .add(WeightedItemData.create(WeaponItemsME.LORIEN_SWORD)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.LORIEN_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.LORIEN_LAURELS_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.LORIEN_MALLORN_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + KNIGHT = new NpcData(NpcRegistry.LOTHLORIEN_KNIGHT.getValue(), RaceRegistry.ELF, FACTION, TexturePresetsRegistry.LOTHLORIEN_ELF, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.LORIEN_SOLDIER_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.GALADHRIM_HELMET)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.LORIEN_SOLDIER_SCALE_HAUBERK).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.LORIEN_SOLDIER_SCALE_HAUBERK).withCape(BackAttachmentsME.GALADHRIM_CAPE).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.LORIEN_MARCHWARDEN_MAIL_HAUBERK).withCape(BackAttachmentsME.GALADHRIM_CAPE)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.LORIEN_SCALE_COAT))) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GALADHRIM_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.LORIEN_GLAIVE)) + .add(WeightedItemData.create(WeaponItemsME.LORIEN_SPEAR)) + .add(WeightedItemData.create(WeaponItemsME.LORIEN_SWORD)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.LORIEN_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.LORIEN_LAURELS_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.LORIEN_MALLORN_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + GUARD = new NpcData(NpcRegistry.LOTHLORIEN_GUARD.getValue(), RaceRegistry.ELF, FACTION, TexturePresetsRegistry.LOTHLORIEN_ELF, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GALADHRIM_HELMET).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.LORIEN_SOLDIER_HELMET)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GALADHRIM_CHESTPLATE).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.GALADHRIM_CHESTPLATE).withCape(BackAttachmentsME.GALADHRIM_CAPE).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.LORIEN_SOLDIER_SCALE_HAUBERK).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.LORIEN_SOLDIER_SCALE_HAUBERK).withCape(BackAttachmentsME.GALADHRIM_CAPE)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GALADHRIM_LEGGINGS))) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GALADHRIM_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.LORIEN_NOBLE_AXE).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.LORIEN_NOBLE_SWORD).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.LORIEN_NOBLE_SPEAR).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.LORIEN_NOBLE_GLAIVE)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GALADHRIM_SHIELD).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.LORIEN_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.LORIEN_LAURELS_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.LORIEN_MALLORN_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + LORD = new NpcData(NpcRegistry.LOTHLORIEN_LORD.getValue(), RaceRegistry.ELF, FACTION, TexturePresetsRegistry.LOTHLORIEN_LORD, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GALADHRIM_LORD_HELMET)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GALADHRIM_LORD_CHESTPLATE).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.GALADHRIM_LORD_CHESTPLATE).withCape(BackAttachmentsME.GALADHRIM_LORD_SURCOAT)) + .add(WeightedItemData.create(EquipmentItemsME.GALADHRIM_LORD_CHESTPLATE).withCape(BackAttachmentsME.GALADHRIM_CAPE)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GALADHRIM_LORD_LEGGINGS))) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.GALADHRIM_LORD_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.LORIEN_NOBLE_AXE)) + .add(WeightedItemData.create(WeaponItemsME.LORIEN_NOBLE_SWORD)) + .add(WeightedItemData.create(WeaponItemsME.LORIEN_NOBLE_SPEAR)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.GALADHRIM_LORD_SHIELD).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.GALADHRIM_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/MordorNpcDataPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/MordorNpcDataPool.java new file mode 100644 index 0000000000..37df4d20ab --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/MordorNpcDataPool.java @@ -0,0 +1,344 @@ +package net.sevenstars.middleearth.registries.content.npcs.pools; + +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.item.Items; +import net.minecraft.registry.RegistryKey; +import net.sevenstars.middleearth.item.EquipmentItemsME; +import net.sevenstars.middleearth.item.ToolItemsME; +import net.sevenstars.middleearth.item.WeaponItemsME; +import net.sevenstars.middleearth.item.utils.armor.backAttachments.BackAttachmentsME; +import net.sevenstars.middleearth.item.utils.armor.helmetAttachments.HelmetAttachmentsME; +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.registries.content.npcs.NpcRegistry; +import net.sevenstars.middleearth.registries.content.races.RaceRegistry; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.npcs.NpcData; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedGearData; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedItemData; +import net.sevenstars.middleearth.resources.datas.npcs.data.GearSlotPool; + +import java.util.List; + +public class MordorNpcDataPool { + private final static RegistryKey FACTION = FactionRegistry.MORDOR; + private final static String FACTION_BASE = FACTION.getValue().getPath() + ".%s"; + + private static final int DARK_RED = 0x4f251d; + private static final int DARK_BROWN = 0x4a3c34; + private static final int DARK = 0x1d1f1e; + + private static List allColors; + + public final static NpcData BLACK_NUMENOREAN; + public final static NpcData SNAGA; + public final static NpcData SCOUT; + public final static NpcData MILITIA; + public final static NpcData WARRIOR; + public final static NpcData VETERAN; + public final static NpcData CAPTAIN; + + public static List fetchAll() { + return List.of( + new NpcRegistry.RegisterableNpcData(NpcRegistry.MORDOR_SNAGA, SNAGA), + new NpcRegistry.RegisterableNpcData(NpcRegistry.MORDOR_SCOUT, SCOUT), + new NpcRegistry.RegisterableNpcData(NpcRegistry.MORDOR_MILITIA, MILITIA), + new NpcRegistry.RegisterableNpcData(NpcRegistry.MORDOR_WARRIOR, WARRIOR), + new NpcRegistry.RegisterableNpcData(NpcRegistry.MORDOR_VETERAN, VETERAN), + new NpcRegistry.RegisterableNpcData(NpcRegistry.MORDOR_CAPTAIN, CAPTAIN), + new NpcRegistry.RegisterableNpcData(NpcRegistry.MORDOR_BLACK_NUMENOREAN, BLACK_NUMENOREAN) + ); + } + + static { + allColors = List.of(DARK_RED, DARK_BROWN, DARK); + + BLACK_NUMENOREAN = new NpcData(NpcRegistry.MORDOR_BLACK_NUMENOREAN.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.MORDOR_BLACK_NUMENOREAN, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_BLACK_NUMENOREAN_PLATE_HELMET).withWeight(4)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_BLACK_NUMENOREAN_PLATE_CHESTPLATE)) + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_BLACK_NUMENOREAN_PLATE_CHESTPLATE).withCape(BackAttachmentsME.MORDOR_BLACK_NUMENOREAN_CAPE)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_BLACK_NUMENOREAN_PLATE_LEGGINGS)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.MORDOR_BLACK_NUMENOREAN_PLATE_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.BLACK_NUMENOREAN_SPEAR)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.BLACK_NUMENOREAN_TOWER_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + SNAGA = new NpcData(NpcRegistry.MORDOR_SNAGA.getValue(), RaceRegistry.ORC, FACTION, TexturePresetsRegistry.MORDOR_ORC, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_SKULLCAP).withColors(allColors).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.HOOD).withColors(allColors).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COIF)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_CAPE).withColors(allColors)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEG_BRACER).withColors(allColors)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.ORCISH_SANDALS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.CRUDE_SPEAR).withWeight(4)) + .add(WeightedItemData.create(ToolItemsME.CRUDE_AXE).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.CRUDE_DAGGER).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.ORC_KNIFE).withWeight(2)) + .add(WeightedItemData.create(ToolItemsME.CRUDE_PICKAXE)) + .add(WeightedItemData.create(ToolItemsME.CRUDE_HOE)) + .add(WeightedItemData.create(ToolItemsME.CRUDE_SHOVEL)) + .add(WeightedItemData.create(WeaponItemsME.CRUDE_FALCHION)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.MORDOR_WOODEN_SHIELD).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.MORDOR_PAINTED_WOODEN_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + MILITIA = new NpcData(NpcRegistry.MORDOR_MILITIA.getValue(), RaceRegistry.ORC, FACTION, TexturePresetsRegistry.MORDOR_ORC, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_MORDOR_HELMET).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_MORDOR_NASAL_HELMET).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_MORDOR_HELMET).withWeight(2).withHood(HelmetAttachmentsME.HOOD, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_MORDOR_NASAL_HELMET).withWeight(2).withHood(HelmetAttachmentsME.HOOD, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_MORDOR_KETTLE_HAT)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_BRACED_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_HELMET).withHood(HelmetAttachmentsME.HOOD, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_MORDOR_KETTLE_HAT_WITH_COIF)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_SHIRT).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_SHIRT).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_SHIRT).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_SHIRT).withCape(BackAttachmentsME.SURCOAT, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_HAUBERK).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_HAUBERK).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_HAUBERK).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_HAUBERK).withCape(BackAttachmentsME.SURCOAT, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.SURCOAT).withColors(allColors)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEG_BRACER).withColors(allColors)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_SANDALS)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_BLACK_FUR_BOOTS)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_BROWN_FUR_BOOTS)) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.CRUDE_SPEAR).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.ORC_SPEAR).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.ORC_AXE).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.CRUDE_FALCHION).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.ORC_SWORD).withWeight(2)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.MORDOR_ROUND_SHIELD).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.MORDOR_PAINTED_ROUND_SHIELD).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.MORDOR_BLACK_ROUND_SHIELD).withWeight(2)) + .add(WeightedItemData.create(Items.AIR)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + SCOUT = new NpcData(NpcRegistry.MORDOR_SCOUT.getValue(), RaceRegistry.ORC, FACTION, TexturePresetsRegistry.MORDOR_ORC, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_MORDOR_HELMET).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_MORDOR_NASAL_HELMET).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_MORDOR_HELMET).withWeight(2).withHood(HelmetAttachmentsME.HOOD, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_MORDOR_NASAL_HELMET).withWeight(2).withHood(HelmetAttachmentsME.HOOD, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_HELMET).withHood(HelmetAttachmentsME.HOOD, allColors)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_SHIRT).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_SHIRT).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_SHIRT).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_SHIRT).withCape(BackAttachmentsME.SURCOAT, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_HAUBERK).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_HAUBERK).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_HAUBERK).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_HAUBERK).withCape(BackAttachmentsME.SURCOAT, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.SURCOAT).withColors(allColors)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEG_BRACER).withColors(allColors)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_SANDALS)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_BLACK_FUR_BOOTS)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_BROWN_FUR_BOOTS)) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.MORDOR_BOW).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.ORCISH_BOW).withWeight(3)) + .add(WeightedItemData.create(Items.BOW).withWeight(15)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + WARRIOR = new NpcData(NpcRegistry.MORDOR_WARRIOR.getValue(), RaceRegistry.URUK, FACTION, TexturePresetsRegistry.MORDOR_BLACK_URUK, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_HELMET).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_HELMET).withWeight(2).withHood(HelmetAttachmentsME.HOOD, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_NASAL_HELMET).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_NASAL_HELMET).withWeight(2).withHood(HelmetAttachmentsME.HOOD, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_KETTLE_HAT).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_KETTLE_HAT_WITH_COIF).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_MANDIBLE_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_SALLET).withHood(HelmetAttachmentsME.HOOD, allColors)) + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_CREST_HELMET)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_CUIRASS).withColors(allColors).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_CUIRASS).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_CUIRASS).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_CUIRASS).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_PAINTED_CUIRASS).withColors(allColors).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_PAINTED_CUIRASS).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_PAINTED_CUIRASS).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_PAINTED_CUIRASS).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_CHESTPLATE).withColors(allColors).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_GORGET_HAUBERK).withColors(allColors).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_GORGET_HAUBERK).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_GORGET_HAUBERK).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_GORGET_HAUBERK).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) + + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_REINFORCED_COAT).withColors(allColors).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_REINFORCED_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_REINFORCED_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.MORDOR_REINFORCED_COAT).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColors(allColors)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEG_BRACER).withColors(allColors)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_SANDALS)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_BLACK_FUR_BOOTS)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_BROWN_FUR_BOOTS)) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.MORDOR_SPEAR).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.MORDOR_AXE).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.MORDOR_FALCHION).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.ORC_SWORD).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.ORC_AXE).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.ORC_SPEAR).withWeight(2)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.MORDOR_BRACED_SHIELD).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.MORDOR_BLACK_BRACED_SHIELD).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.MORDOR_PAINTED_BRACED_SHIELD).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.MORDOR_LARGE_SHIELD).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.MORDOR_BLACK_LARGE_SHIELD).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.MORDOR_PAINTED_LARGE_SHIELD).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.GONDORIAN_CONVERTED_SHIELD)) + .add(WeightedItemData.create(Items.AIR)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + VETERAN = new NpcData(NpcRegistry.MORDOR_VETERAN.getValue(), RaceRegistry.URUK, FACTION, TexturePresetsRegistry.MORDOR_BLACK_URUK, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.BLACK_URUK_PLATE_HELMET))) + .add(EquipmentSlot.CHEST, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.BLACK_URUK_PLATE_CHESTPLATE))) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.BLACK_URUK_PLATE_LEGGINGS).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_REINFORCED_LEATHER_SKIRT)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.BLACK_URUK_PLATE_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.MORDOR_ELITE_CLEAVER)) + .add(WeightedItemData.create(WeaponItemsME.MORDOR_ELITE_WARBLADE)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.MORDOR_PAINTED_HEAVY_SHIELD).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.MORDOR_HEAVY_SHIELD).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.MORDOR_BLACK_ROUND_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + CAPTAIN = new NpcData(NpcRegistry.MORDOR_CAPTAIN.getValue(), RaceRegistry.URUK, FACTION, TexturePresetsRegistry.MORDOR_BLACK_URUK, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.BLACK_URUK_COMMANDER_HELMET))) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.BLACK_URUK_COMMANDER_CHESTPLATE)) + .add(WeightedItemData.create(EquipmentItemsME.BLACK_URUK_COMMANDER_CHESTPLATE).withCape(BackAttachmentsME.CAPE, allColors)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.BLACK_URUK_PLATE_LEGGINGS))) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.BLACK_URUK_PLATE_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.MORDOR_ELITE_CLEAVER)) + .add(WeightedItemData.create(WeaponItemsME.MORDOR_ELITE_WARBLADE)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.MORDOR_PAINTED_HEAVY_SHIELD).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.MORDOR_HEAVY_SHIELD).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.MORDOR_BLACK_ROUND_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/NpcTextureDataPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/NpcTextureDataPool.java new file mode 100644 index 0000000000..b49a4f2955 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/NpcTextureDataPool.java @@ -0,0 +1,270 @@ +package net.sevenstars.middleearth.registries.content.npcs.pools; + +public class NpcTextureDataPool { +/* + public final static List DEFAULT_HAIR; + + public final static TexturePresetData HUMAN_COMMON; + public final static TexturePresetData HUMAN_MALE; + public final static TexturePresetData HUMAN_FEMALE; + + public static class Dwarves{ + public final static TexturePresetData DWARF_MALE; + public final static TexturePresetData DWARF_FEMALE; + + static { + DWARF_MALE = new TexturePresetData() + .withMaterials(NpcTextureType.SKIN, List.of( + TextureElementData.material(CharacterMaterialsRegistryME.Skin.TAN), + TextureElementData.material(CharacterMaterialsRegistryME.Skin.TAN_DESATURATED), + TextureElementData.material(CharacterMaterialsRegistryME.Skin.PALE), + TextureElementData.material(CharacterMaterialsRegistryME.Skin.BEIGE) + )) + .withPatterns(NpcTextureType.BODY, List.of( + TextureElementData.pattern(CharacterPatternsRegistryME.Skins.Body.MUSCULAR), + TextureElementData.pattern(CharacterPatternsRegistryME.Skins.Body.FAT) + )) + .withPatterns(NpcTextureType.HEAD, List.of( + TextureElementData.pattern(CharacterPatternsRegistryME.Skins.Head.MALE) + )) + .withPatterns(NpcTextureType.NOSE, List.of( + TextureElementData.pattern(CharacterPatternsRegistryME.Skins.Nose.CUBE) + )) + .withPatterns(NpcTextureType.EAR, List.of( + TextureElementData.pattern(CharacterPatternsRegistryME.Skins.Ear.SQUARE), + TextureElementData.pattern(CharacterPatternsRegistryME.Skins.Ear.NORMAL) + )) + .withMaterials(NpcTextureType.EYE, List.of( + TextureElementData.material(CharacterMaterialsRegistryME.Eye.BLUE), + TextureElementData.material(CharacterMaterialsRegistryME.Eye.GREEN), + TextureElementData.material(CharacterMaterialsRegistryME.Eye.DARK_GREEN), + TextureElementData.material(CharacterMaterialsRegistryME.Eye.BLACK), + TextureElementData.material(CharacterMaterialsRegistryME.Eye.NAVY), + TextureElementData.material(CharacterMaterialsRegistryME.Eye.BROWN) + )) + .withPatterns(NpcTextureType.EYE, List.of( + TextureElementData.pattern(CharacterPatternsRegistryME.Eyes.Eye.COMMON) + )) + .withMaterials(NpcTextureType.HAIR, DEFAULT_HAIR) + .withPatterns(NpcTextureType.EYEBROW, List.of( + TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Eyebrow.UNI), + TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Eyebrow.BASIC), + TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Eyebrow.SHORT), + TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Eyebrow.THICK), + TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Eyebrow.LONG) + )) + .withPatterns(NpcTextureType.HAIR, List.of( + TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Hair.PONYTAIL_SHORT_ORNAMENTED), + TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Hair.SHARP), + TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Hair.BALD_SIDES), + TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Hair.DIRTY_MOP), + TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Hair.SHORT), + TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Hair.TOP_BALDING), + TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Hair.SIDE_BALDING), + TexturePresetData.EMPTY_VALUE_KEY + )) + .withPatterns(NpcTextureType.BEARD, List.of( + TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.BROAD), + TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.CHUNKY_BRAIDS), + TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.CLEAN), + TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.DUAL_LARGE_ORNAMENTED), + TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.DUAL_ORNAMENTED), + TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.LARGE), + TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.LONG_SINGLE_ORNAMENTED), + TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.SHORT), + TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.SINGLE), + TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.UNCLEAN_ORNAMENTED), + TextureElementData.pattern(CharacterPatternsRegistryME.Hairs.Beard.VERY_BROAD) + )) + .withPatterns(NpcTextureType.CLOTHE_PRESETS, List.of( + //CharacterPatternsME.Clothing.DWARVEN_GARMENT, + //CharacterPatternsME.Clothing.DWARVEN_GARMENT_WITH_PANTS, + //CharacterPatternsME.Clothing.PANTS + )); + + DWARF_FEMALE = new TexturePresetData() + .withMaterials(NpcTextureType.SKIN, List.of( + CharacterMaterialsRegistryME.Skin.TAN, + CharacterMaterialsRegistryME.Skin.TAN_DESATURATED, + CharacterMaterialsRegistryME.Skin.PALE, + CharacterMaterialsRegistryME.Skin.BEIGE + )) + .withPatterns(NpcTextureType.BODY, List.of( + CharacterPatternsRegistryME.Skins.Body.FEMALE, + CharacterPatternsRegistryME.Skins.Body.SLIM, + CharacterPatternsRegistryME.Skins.Body.FAT + )) + .withPatterns(NpcTextureType.HEAD, List.of( + CharacterPatternsRegistryME.Skins.Head.FEMALE + )) + .withPatterns(NpcTextureType.EAR, List.of( + CharacterPatternsRegistryME.Skins.Ear.SQUARE, + CharacterPatternsRegistryME.Skins.Ear.NORMAL + )) + .withMaterials(NpcTextureType.EYE, List.of( + CharacterMaterialsRegistryME.Eye.BLUE, + CharacterMaterialsRegistryME.Eye.GREEN, + CharacterMaterialsRegistryME.Eye.DARK_GREEN, + CharacterMaterialsRegistryME.Eye.BLACK, + CharacterMaterialsRegistryME.Eye.NAVY, + CharacterMaterialsRegistryME.Eye.BROWN + )) + .withPatterns(NpcTextureType.EYE, List.of( + CharacterPatternsRegistryME.Eyes.Eye.COMMON + )) + .withMaterials(NpcTextureType.HAIR, DEFAULT_HAIR) + .withPatterns(NpcTextureType.EYEBROW, List.of( + CharacterPatternsRegistryME.Hairs.Eyebrow.UNI, + CharacterPatternsRegistryME.Hairs.Eyebrow.BASIC, + CharacterPatternsRegistryME.Hairs.Eyebrow.SHORT, + CharacterPatternsRegistryME.Hairs.Eyebrow.THICK, + CharacterPatternsRegistryME.Hairs.Eyebrow.LONG + )) + .withPatterns(NpcTextureType.HAIR, Stream.of( + CharacterPatternsRegistryME.Hairs.Hair.PONYTAIL_SHORT_ORNAMENTED, + CharacterPatternsRegistryME.Hairs.Hair.LONG, + CharacterPatternsRegistryME.Hairs.Hair.FLAT_LONG, + CharacterPatternsRegistryME.Hairs.Hair.VERY_LONG + ).toList() + ) + .withPatterns(NpcTextureType.BEARD, Stream.of( + CharacterPatternsRegistryME.Hairs.Beard.CLEAN, + CharacterPatternsRegistryME.Hairs.Beard.LONG_SINGLE_ORNAMENTED, + CharacterPatternsRegistryME.Hairs.Beard.SHORT).toList()) + .withPatterns(NpcTextureType.CLOTHE_PRESETS, List.of( + //CharacterPatternsME.Clothing.DWARVEN_GARMENT, + //CharacterPatternsME.Clothing.DWARVEN_GARMENT_WITH_PANTS + )); + } + } + + + static { + // region HAIR + DEFAULT_HAIR = List.of( + CharacterMaterialsRegistryME.Hair.COLD_BLACK_COPPER, + CharacterMaterialsRegistryME.Hair.COLD_BLACK_GOLD, + CharacterMaterialsRegistryME.Hair.COLD_BLACK_SILVER, + CharacterMaterialsRegistryME.Hair.COLD_BLACK_ALMANDINE, + + CharacterMaterialsRegistryME.Hair.BLACK_COPPER, + CharacterMaterialsRegistryME.Hair.BLACK_GOLD, + CharacterMaterialsRegistryME.Hair.BLACK_SILVER, + CharacterMaterialsRegistryME.Hair.BLACK_ALMANDINE, + + CharacterMaterialsRegistryME.Hair.BROWN_COPPER, + CharacterMaterialsRegistryME.Hair.BROWN_GOLD, + CharacterMaterialsRegistryME.Hair.BROWN_SILVER, + CharacterMaterialsRegistryME.Hair.BROWN_ALMANDINE, + + CharacterMaterialsRegistryME.Hair.DARK_BROWN_COPPER, + CharacterMaterialsRegistryME.Hair.DARK_BROWN_GOLD, + CharacterMaterialsRegistryME.Hair.DARK_BROWN_SILVER, + CharacterMaterialsRegistryME.Hair.DARK_BROWN_ALMANDINE, + + CharacterMaterialsRegistryME.Hair.STRAW_COPPER, + CharacterMaterialsRegistryME.Hair.STRAW_GOLD, + CharacterMaterialsRegistryME.Hair.STRAW_SILVER, + CharacterMaterialsRegistryME.Hair.STRAW_ALMANDINE, + CharacterMaterialsRegistryME.Hair.STRAW_BEADS, + + CharacterMaterialsRegistryME.Hair.GINGER_COPPER, + CharacterMaterialsRegistryME.Hair.GINGER_GOLD, + CharacterMaterialsRegistryME.Hair.GINGER_SILVER, + CharacterMaterialsRegistryME.Hair.GINGER_ALMANDINE, + CharacterMaterialsRegistryME.Hair.GINGER_BEADS, + + CharacterMaterialsRegistryME.Hair.WHITE_COPPER, + CharacterMaterialsRegistryME.Hair.WHITE_GOLD, + CharacterMaterialsRegistryME.Hair.WHITE_ALMANDINE, + CharacterMaterialsRegistryME.Hair.WHITE_BEADS, + + CharacterMaterialsRegistryME.Hair.GRAY_COPPER, + CharacterMaterialsRegistryME.Hair.GRAY_GOLD, + CharacterMaterialsRegistryME.Hair.GRAY_ALMANDINE, + CharacterMaterialsRegistryME.Hair.GRAY_BEADS + ); + // endregion + + // region HUMAN + HUMAN_COMMON = new TexturePresetData() + .withMaterials(NpcTextureType.SKIN, List.of( + CharacterMaterialsRegistryME.Skin.TAN, + CharacterMaterialsRegistryME.Skin.TAN_DESATURATED, + CharacterMaterialsRegistryME.Skin.PALE, + CharacterMaterialsRegistryME.Skin.BEIGE + )) + .withMaterials(NpcTextureType.EYE, List.of( + CharacterMaterialsRegistryME.Eye.BLUE, + CharacterMaterialsRegistryME.Eye.GREEN, + CharacterMaterialsRegistryME.Eye.DARK_GREEN, + CharacterMaterialsRegistryME.Eye.NAVY, + CharacterMaterialsRegistryME.Eye.BROWN + )) + .withPatterns(NpcTextureType.EYE, List.of( + CharacterPatternsRegistryME.Eyes.Eye.COMMON + )) + .withMaterials(NpcTextureType.HAIR, DEFAULT_HAIR) + .withPatterns(NpcTextureType.EYEBROW, List.of( + CharacterPatternsRegistryME.Hairs.Eyebrow.UNI, + CharacterPatternsRegistryME.Hairs.Eyebrow.BASIC, + CharacterPatternsRegistryME.Hairs.Eyebrow.SHORT + )) + .withPatterns(NpcTextureType.CLOTHE_PRESETS, List.of( + //CharacterPatternsME.Clothing.TOGA, + //CharacterPatternsME.Clothing.FULL_TOGA, + //CharacterPatternsME.Clothing.SKIRT + )); + HUMAN_MALE = new TexturePresetData() + .withPatterns(NpcTextureType.BODY, List.of( + CharacterPatternsRegistryME.Skins.Body.MUSCULAR + )) + .withPatterns(NpcTextureType.HEAD, List.of( + CharacterPatternsRegistryME.Skins.Head.MALE + )) + .withPatterns(NpcTextureType.EYEBROW, List.of( + CharacterPatternsRegistryME.Hairs.Eyebrow.UNI, + CharacterPatternsRegistryME.Hairs.Eyebrow.BASIC, + CharacterPatternsRegistryME.Hairs.Eyebrow.SHORT + )) + .withPatterns(NpcTextureType.HAIR, Stream.of( + CharacterPatternsRegistryME.Hairs.Hair.BOWL, + CharacterPatternsRegistryME.Hairs.Hair.BALD_SIDES, + CharacterPatternsRegistryME.Hairs.Hair.DIRTY_MOP, + CharacterPatternsRegistryME.Hairs.Hair.SHORT, + CharacterPatternsRegistryME.Hairs.Hair.TOP_BALDING, + CharacterPatternsRegistryME.Hairs.Hair.SIDE_BALDING, + null).toList() + ) + .withPatterns(NpcTextureType.BEARD, Stream.of( + CharacterPatternsRegistryME.Hairs.Beard.CLEAN, + CharacterPatternsRegistryME.Hairs.Beard.SHORT, + CharacterPatternsRegistryME.Hairs.Beard.SINGLE, + CharacterPatternsRegistryME.Hairs.Beard.UNCLEAN_ORNAMENTED, + null).toList()); + HUMAN_FEMALE = new TexturePresetData() + .withPatterns(NpcTextureType.BODY, List.of( + CharacterPatternsRegistryME.Skins.Body.FEMALE + )) + .withPatterns(NpcTextureType.HEAD, List.of( + CharacterPatternsRegistryME.Skins.Head.FEMALE + )) + .withPatterns(NpcTextureType.EYEBROW, List.of( + CharacterPatternsRegistryME.Hairs.Eyebrow.UNI, + CharacterPatternsRegistryME.Hairs.Eyebrow.BASIC, + CharacterPatternsRegistryME.Hairs.Eyebrow.SHORT + )) + .withPatterns(NpcTextureType.HAIR, Stream.of( + CharacterPatternsRegistryME.Hairs.Hair.DIRTY_MOP, + CharacterPatternsRegistryME.Hairs.Hair.LONG, + CharacterPatternsRegistryME.Hairs.Hair.SEMI_LONG, + CharacterPatternsRegistryME.Hairs.Hair.VERY_LONG, + null).toList() + ) + .withPatterns(NpcTextureType.CLOTHE_PRESETS, List.of( + //CharacterPatternsME.Clothing.ROBE + )); + // endregion + } + */ +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/RohirricNpcDataPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/RohirricNpcDataPool.java new file mode 100644 index 0000000000..b661078e76 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/RohirricNpcDataPool.java @@ -0,0 +1,255 @@ +package net.sevenstars.middleearth.registries.content.npcs.pools; + +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.item.Items; +import net.minecraft.registry.RegistryKey; +import net.sevenstars.middleearth.item.EquipmentItemsME; +import net.sevenstars.middleearth.item.ToolItemsME; +import net.sevenstars.middleearth.item.WeaponItemsME; +import net.sevenstars.middleearth.item.utils.armor.backAttachments.BackAttachmentsME; +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.registries.content.npcs.NpcRegistry; +import net.sevenstars.middleearth.registries.content.races.RaceRegistry; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.npcs.NpcData; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedGearData; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedItemData; +import net.sevenstars.middleearth.resources.datas.npcs.data.GearSlotPool; + +import java.util.List; + +public class RohirricNpcDataPool { + private final static RegistryKey FACTION = FactionRegistry.ROHAN; + + private final static int LIGHT_GREEN = 0x516c42; + private final static int DARK_GREEN = 0x2d4122; + private final static int LIGHT_RED = 0x7f4442; + private final static int DARK_RED = 0x56302d; + private final static int LIGHT_BEIGE = 0xa39269; + private final static int DARK_BEIGE = 0x827052; + private final static int LIGHT_BROWN = 0x69594d; + private final static int DARK_BROWN = 0x44382f; + + public final static NpcData PEASANT; + public final static NpcData MILITIA; + public final static NpcData SOLDIER; + public final static NpcData KNIGHT; + public final static NpcData ROYAL_GUARD; + public final static NpcData EORLING_MARSHAL; + public final static NpcData HORSE_LORD; + + + public static List fetchAll() { + return List.of( + new NpcRegistry.RegisterableNpcData(NpcRegistry.ROHAN_PEASANT, PEASANT), + new NpcRegistry.RegisterableNpcData(NpcRegistry.ROHAN_MILITIA, MILITIA), + new NpcRegistry.RegisterableNpcData(NpcRegistry.ROHAN_SOLDIER, SOLDIER), + new NpcRegistry.RegisterableNpcData(NpcRegistry.ROHAN_KNIGHT, KNIGHT), + new NpcRegistry.RegisterableNpcData(NpcRegistry.ROHAN_ROYAL_GUARD, ROYAL_GUARD), + new NpcRegistry.RegisterableNpcData(NpcRegistry.ROHAN_EORLING_MARSHAL, EORLING_MARSHAL), + new NpcRegistry.RegisterableNpcData(NpcRegistry.ROHAN_HORSE_LORD, HORSE_LORD) + ); + } + + + static { + PEASANT = new NpcData(NpcRegistry.ROHAN_PEASANT.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.ROHAN_PEASANT, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.STRAW_HAT)) + .add(WeightedItemData.create(EquipmentItemsME.BYCOCKET)) + .add(WeightedItemData.create().withWeight(5)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.WORK_SHOES))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(Items.STONE_AXE)) + .add(WeightedItemData.create(ToolItemsME.SMITHING_HAMMER)) + .add(WeightedItemData.create(ToolItemsME.PIPE)) + .add(WeightedItemData.create().withWeight(3)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + MILITIA = new NpcData(NpcRegistry.ROHAN_MILITIA.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.ROHAN_PEASANT, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_HELMET).withWeight(6)) + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_SKULLCAP).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_LEATHER_HELMET).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_ORNAMENTED_LEATHER_HELMET)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withCape(BackAttachmentsME.ROHIRRIC_CAPE).withColor(LIGHT_GREEN).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withCape(BackAttachmentsME.ROHIRRIC_CAPE).withColor(DARK_GREEN).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withCape(BackAttachmentsME.ROHIRRIC_CAPE).withColor(LIGHT_BROWN).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withCape(BackAttachmentsME.ROHIRRIC_CAPE).withColor(DARK_BROWN).withWeight(4)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withCape(BackAttachmentsME.ROHIRRIC_CAPE).withColor(LIGHT_BEIGE).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withCape(BackAttachmentsME.ROHIRRIC_CAPE).withColor(DARK_BEIGE).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_COAT).withColor(LIGHT_GREEN)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_COAT).withColor(DARK_GREEN)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_COAT).withColor(LIGHT_BEIGE)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_COAT).withColor(DARK_BEIGE)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_COAT).withColor(LIGHT_BROWN)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_COAT).withColor(DARK_BROWN)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.STURDY_BOOTS)) + .add(WeightedItemData.create(EquipmentItemsME.TRAVELLING_BOOTS)) + .add(WeightedItemData.create(EquipmentItemsME.HIGH_CUT_BOOTS)) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.BRONZE_SPEAR).withWeight(4)) + .add(WeightedItemData.create(WeaponItemsME.BRONZE_SWORD).withWeight(3)) + .add(WeightedItemData.create(ToolItemsME.BRONZE_AXE).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.IRON_SPEAR).withWeight(2)) + .add(WeightedItemData.create(Items.IRON_SWORD)) + .add(WeightedItemData.create(Items.IRON_AXE)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.KITE_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.HEATER_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.ROUND_SHIELD)) + .add(WeightedItemData.create().withWeight(5)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + SOLDIER = new NpcData(NpcRegistry.ROHAN_SOLDIER.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.ROHAN_SOLDIER, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_MILITIA_HELMET).withWeight(6)) + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_SKULLCAP).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_BRACED_MILITIA_HELMET).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_MILITIA_HELMET).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_ORNAMENTED_MILITIA_HELMET)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_VEST).withColor(LIGHT_GREEN)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_VEST).withColor(DARK_GREEN)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_VEST).withColor(LIGHT_BEIGE)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_VEST).withColor(DARK_BEIGE)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_VEST).withColor(LIGHT_BROWN)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_VEST).withColor(DARK_BROWN)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_SCALE_VEST).withColor(LIGHT_GREEN)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_SCALE_VEST).withColor(DARK_GREEN)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_SCALE_VEST).withColor(LIGHT_BEIGE)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_SCALE_VEST).withColor(DARK_BEIGE)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_SCALE_VEST).withColor(LIGHT_BROWN)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_SCALE_VEST).withColor(DARK_BROWN)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_GAMBESON).withColor(LIGHT_GREEN)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_GAMBESON).withColor(DARK_GREEN)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_GAMBESON).withColor(LIGHT_BEIGE)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_GAMBESON).withColor(DARK_BEIGE)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_GAMBESON).withColor(LIGHT_BROWN)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_GAMBESON).withColor(DARK_BROWN)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.STURDY_BOOTS)) + .add(WeightedItemData.create(EquipmentItemsME.TRAVELLING_BOOTS)) + .add(WeightedItemData.create(EquipmentItemsME.HIGH_CUT_BOOTS)) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.ROHIRRIC_SPEAR).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.ROHIRRIC_SWORD)) + .add(WeightedItemData.create(WeaponItemsME.ROHIRRIC_AXE)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.ROHIRRIC_SHIELD).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.ROHIRRIC_BUCKING_HORSE_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.ROHIRRIC_GALLOPING_HORSE_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.ROHIRRIC_HORSE_HEAD_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.ROHIRRIC_PLAINSMAN_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.ROHIRRIC_TWIN_HORSES_SHIELD)) + .add(WeightedItemData.create().withWeight(10)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + KNIGHT = new NpcData(NpcRegistry.ROHAN_KNIGHT.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.ROHAN_SOLDIER, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_SOLDIER_HELMET).withWeight(6)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_MILITIA_HELMET).withWeight(6)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_BRACED_MILITIA_HELMET).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_MILITIA_HELMET).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_ORNAMENTED_MILITIA_HELMET)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_ORNAMENTED_SOLDIER_HELMET)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_LEATHER_VEST).withColor(LIGHT_RED)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_LEATHER_VEST).withColor(DARK_RED)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_LEATHER_SCALE_VEST).withColor(LIGHT_RED)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_LEATHER_SCALE_VEST).withColor(DARK_RED)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_BRACED_MAIL_SHIRT).withColor(LIGHT_RED)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_BRACED_MAIL_SHIRT).withColor(DARK_RED)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_SCALE_VEST).withColor(LIGHT_RED)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_SCALE_VEST).withColor(DARK_RED)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_VEST).withColor(LIGHT_RED)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_VEST).withColor(DARK_RED)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.STURDY_BOOTS)) + .add(WeightedItemData.create(EquipmentItemsME.TRAVELLING_BOOTS)) + .add(WeightedItemData.create(EquipmentItemsME.HIGH_CUT_BOOTS)) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.ROHIRRIC_SWORD)) + .add(WeightedItemData.create(WeaponItemsME.ROHIRRIC_AXE)) + .add(WeightedItemData.create(WeaponItemsME.ROHIRRIC_SPEAR)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.ROHIRRIC_SHIELD).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.ROHIRRIC_BUCKING_HORSE_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.ROHIRRIC_GALLOPING_HORSE_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.ROHIRRIC_HORSE_HEAD_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.ROHIRRIC_PLAINSMAN_SHIELD)) + .add(WeightedItemData.create(WeaponItemsME.ROHIRRIC_TWIN_HORSES_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + ROYAL_GUARD = new NpcData(NpcRegistry.ROHAN_ROYAL_GUARD.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.ROHAN_SOLDIER, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_ROYAL_GUARD_HELMET))) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_SCALE_HAUBERK).withWeight(6)) + .add(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_ORNAMENTED_SCALE_HAUBERK)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.ROHIRRIC_SCALE_JACKET))) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.HIGH_CUT_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.ROHIRRIC_NOBLE_SPEAR).withWeight(6)) + .add(WeightedItemData.create(WeaponItemsME.ROHIRRIC_NOBLE_SWORD)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create(WeightedItemData.create(WeaponItemsME.ROHIRRIC_ROYAL_GUARD_SHIELD))) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + EORLING_MARSHAL = new NpcData(NpcRegistry.ROHAN_EORLING_MARSHAL.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.ROHAN_LORD, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.EORLING_MARSHAL_HELMET))) + .add(EquipmentSlot.CHEST, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.EORLING_MARSHAL_CHESTPLATE))) + .add(EquipmentSlot.LEGS, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.EORLING_MARSHAL_LEGGINGS))) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.EORLING_MARSHAL_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.ROHIRRIC_NOBLE_SWORD).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.ROHIRRIC_NOBLE_SPEAR)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.ROHIRRIC_EORLING_SHIELD)) + .add(WeightedItemData.create().withWeight(3)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + HORSE_LORD = new NpcData(NpcRegistry.ROHAN_HORSE_LORD.getValue(), RaceRegistry.HUMAN, FACTION, TexturePresetsRegistry.ROHAN_LORD, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.HORSE_LORD_HELMET))) + .add(EquipmentSlot.CHEST, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.HORSE_LORD_CHESTPLATE))) + .add(EquipmentSlot.LEGS, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.HORSE_LORD_LEGGINGS))) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.HORSE_LORD_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.ROHIRRIC_NOBLE_SWORD)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.ROHIRRIC_ORNAMENTED_SHIELD)) + .add(WeightedItemData.create().withWeight(3)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/ShireNpcDataPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/ShireNpcDataPool.java new file mode 100644 index 0000000000..43fbcb9169 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/ShireNpcDataPool.java @@ -0,0 +1,98 @@ +package net.sevenstars.middleearth.registries.content.npcs.pools; + +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.item.Items; +import net.minecraft.registry.RegistryKey; +import net.sevenstars.middleearth.item.EquipmentItemsME; +import net.sevenstars.middleearth.item.ToolItemsME; +import net.sevenstars.middleearth.item.WeaponItemsME; +import net.sevenstars.middleearth.item.utils.armor.backAttachments.BackAttachmentsME; +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.registries.content.npcs.NpcRegistry; +import net.sevenstars.middleearth.registries.content.races.RaceRegistry; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.npcs.NpcData; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedGearData; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedItemData; +import net.sevenstars.middleearth.resources.datas.npcs.data.GearSlotPool; + +import java.util.List; + +public class ShireNpcDataPool { + private final static RegistryKey FACTION = FactionRegistry.SHIRE; + + private final static int DARK_BEIGE = 0xa89371; + private final static int DARK_GREEN = 0x336339; + private final static int BROWN = 0x59341e; + private final static int DARK = 0x342c27; + + public final static NpcData PEASANT; + public final static NpcData MILITIA; + public final static NpcData SHIRRIFF; + + public static List fetchAll() { + return List.of( + new NpcRegistry.RegisterableNpcData(NpcRegistry.SHIRE_PEASANT, PEASANT), + new NpcRegistry.RegisterableNpcData(NpcRegistry.SHIRE_MILITIA, MILITIA), + new NpcRegistry.RegisterableNpcData(NpcRegistry.SHIRE_SHIRRIFF, SHIRRIFF) + ); + } + + static { + PEASANT = new NpcData(NpcRegistry.SHIRE_PEASANT.getValue(), RaceRegistry.HOBBIT, FACTION, TexturePresetsRegistry.SHIRE_PEASANT, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.STRAW_HAT).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.WOVEN_HAT).withWeight(2)) + .add(WeightedItemData.create().withWeight(10)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + MILITIA = new NpcData(NpcRegistry.SHIRE_MILITIA.getValue(), RaceRegistry.HOBBIT, FACTION, TexturePresetsRegistry.SHIRE_MILITIA, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.STRAW_HAT).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.WOVEN_HAT).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.BYCOCKET).withColor(BROWN).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.KETTLE_HAT)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON).withColor(DARK)) + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON).withColor(DARK_BEIGE)) + .add(WeightedItemData.create(EquipmentItemsME.GAMBESON).withColor(BROWN)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withColor(DARK).withCape(BackAttachmentsME.CLOAK, DARK)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withColor(DARK_BEIGE).withCape(BackAttachmentsME.CLOAK, DARK)) + .add(WeightedItemData.create(EquipmentItemsME.ARMING_COAT).withColor(BROWN).withCape(BackAttachmentsME.CLOAK, DARK)) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.BRONZE_SWORD)) + .add(WeightedItemData.create(Items.IRON_SWORD)) + .add(WeightedItemData.create(WeaponItemsME.STEEL_SWORD)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.ROUND_SHIELD)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + SHIRRIFF = new NpcData(NpcRegistry.SHIRE_SHIRRIFF.getValue(), RaceRegistry.HOBBIT, FACTION, TexturePresetsRegistry.SHIRE_SHIRRIFF, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.SHIRRIFF_HAT))) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.SURCOAT).withColor(DARK_BEIGE)) + .add(WeightedItemData.create(EquipmentItemsME.SURCOAT).withColor(DARK_GREEN)) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.STEEL_SWORD)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR).withWeight(3)) + .add(WeightedItemData.create(ToolItemsME.PIPE).withWeight(3)) + .add(WeightedItemData.create(ToolItemsME.CLAY_PIPE).withWeight(2)) + .add(WeightedItemData.create(ToolItemsME.BRIMMINGBEND_PIPE)) + .add(WeightedItemData.create(Items.BOOK)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/WildGoblinNpcDataPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/WildGoblinNpcDataPool.java new file mode 100644 index 0000000000..e36fbffe9f --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/npcs/pools/WildGoblinNpcDataPool.java @@ -0,0 +1,205 @@ +package net.sevenstars.middleearth.registries.content.npcs.pools; + +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.item.Items; +import net.minecraft.registry.RegistryKey; +import net.sevenstars.middleearth.block.registration.ModDecorativeBlocks; +import net.sevenstars.middleearth.item.EquipmentItemsME; +import net.sevenstars.middleearth.item.ToolItemsME; +import net.sevenstars.middleearth.item.WeaponItemsME; +import net.sevenstars.middleearth.item.utils.armor.backAttachments.BackAttachmentsME; +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.registries.content.npcs.NpcRegistry; +import net.sevenstars.middleearth.registries.content.races.RaceRegistry; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.npcs.NpcData; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedGearData; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedItemData; +import net.sevenstars.middleearth.resources.datas.npcs.data.GearSlotPool; + +import java.util.List; + +public class WildGoblinNpcDataPool { + private final static RegistryKey FACTION = FactionRegistry.WILD_GOBLINS; + + private static final int DARK_BROWN_GOBLIN = 0x4a3c34; + + public final static NpcData GATHERER; + public final static NpcData WARRIOR; + public final static NpcData SCOUT; + public final static NpcData RIDER; + public final static NpcData BRUTE; + + public static List fetchAll() { + return List.of( + new NpcRegistry.RegisterableNpcData(NpcRegistry.WILD_GOBLIN_GATHERER, GATHERER), + new NpcRegistry.RegisterableNpcData(NpcRegistry.WILD_GOBLIN_SCOUT, SCOUT), + new NpcRegistry.RegisterableNpcData(NpcRegistry.WILD_GOBLIN_RIDER, RIDER), + new NpcRegistry.RegisterableNpcData(NpcRegistry.WILD_GOBLIN_WARRIOR, WARRIOR), + new NpcRegistry.RegisterableNpcData(NpcRegistry.WILD_GOBLIN_BRUTE, BRUTE) + ); + } + + static { + GATHERER = new NpcData(NpcRegistry.WILD_GOBLIN_GATHERER.getValue(), RaceRegistry.ORC, FACTION, TexturePresetsRegistry.WILD_GOBLIN_WEAK, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.LEATHER_SKULLCAP).withColor(DARK_BROWN_GOBLIN).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COIF).withWeight(2)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColor(DARK_BROWN_GOBLIN)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_SHOULDERS, DARK_BROWN_GOBLIN)) + + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.CAPE, DARK_BROWN_GOBLIN)) + + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_CAPE).withColor(DARK_BROWN_GOBLIN)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT).withColor(DARK_BROWN_GOBLIN)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColor(DARK_BROWN_GOBLIN)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEG_BRACER).withColor(DARK_BROWN_GOBLIN)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.ORCISH_SANDALS).withColor(DARK_BROWN_GOBLIN))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(ToolItemsME.CRUDE_AXE).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.CRUDE_DAGGER).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.ORC_KNIFE).withWeight(2)) + .add(WeightedItemData.create(ToolItemsME.CRUDE_PICKAXE)) + .add(WeightedItemData.create(ToolItemsME.CRUDE_HOE)) + .add(WeightedItemData.create(ToolItemsME.CRUDE_SHOVEL)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + SCOUT = new NpcData(NpcRegistry.WILD_GOBLIN_SCOUT.getValue(), RaceRegistry.ORC, FACTION, TexturePresetsRegistry.WILD_GOBLIN_WEAK, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_HELMET).withWeight(6)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_BRACED_HELMET).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COIF).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_MAIL_COIF).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_MORDOR_KETTLE_HAT)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_MORDOR_KETTLE_HAT_WITH_COIF)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_MORDOR_HELMET)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColor(DARK_BROWN_GOBLIN)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_SHOULDERS, DARK_BROWN_GOBLIN)) + + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColor(DARK_BROWN_GOBLIN)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_SHOULDERS, DARK_BROWN_GOBLIN)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COAT).withColor(DARK_BROWN_GOBLIN)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_REINFORCED_LEATHER_SKIRT).withColor(DARK_BROWN_GOBLIN)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColor(DARK_BROWN_GOBLIN)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.ORCISH_BROWN_FUR_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.ORCISH_BOW).withWeight(4)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_BOW)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + RIDER = new NpcData(NpcRegistry.WILD_GOBLIN_RIDER.getValue(), RaceRegistry.ORC, FACTION, TexturePresetsRegistry.WILD_GOBLIN_WARRIOR, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.DOL_GULDUR_JAILER_COLLAR)) + ) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(ModDecorativeBlocks.CRUDE_CHAIN.asItem()).withWeight(4)) + .add(WeightedItemData.create(WeaponItemsME.CRUDE_SPEAR.asItem())) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(Items.STICK).withWeight(4)) + .add(WeightedItemData.create().withWeight(3)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + WARRIOR = new NpcData(NpcRegistry.WILD_GOBLIN_WARRIOR.getValue(), RaceRegistry.ORC, FACTION, TexturePresetsRegistry.WILD_GOBLIN_WARRIOR, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_HELMET).withWeight(6)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_BRACED_HELMET).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COIF).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_MAIL_COIF).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_MORDOR_KETTLE_HAT)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_MORDOR_KETTLE_HAT_WITH_COIF)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_MORDOR_HELMET)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColor(DARK_BROWN_GOBLIN)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_SHOULDERS, DARK_BROWN_GOBLIN)) + + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColor(DARK_BROWN_GOBLIN)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_SHOULDERS, DARK_BROWN_GOBLIN)) + + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColor(DARK_BROWN_GOBLIN)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COAT).withColor(DARK_BROWN_GOBLIN)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_REINFORCED_LEATHER_SKIRT).withColor(DARK_BROWN_GOBLIN)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColor(DARK_BROWN_GOBLIN)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.ORCISH_BRACED_SANDALS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.CRUDE_SPEAR).withWeight(4)) + .add(WeightedItemData.create(ToolItemsME.CRUDE_AXE).withWeight(3)) + .add(WeightedItemData.create(WeaponItemsME.CRUDE_DAGGER).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.ORC_KNIFE).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.CRUDE_FALCHION)) + ) + .add(EquipmentSlot.OFFHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.MORDOR_WOODEN_SHIELD).withWeight(2)) + .add(WeightedItemData.create(WeaponItemsME.ORC_KNIFE)) + .add(WeightedItemData.create(Items.AIR).withWeight(3)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + + BRUTE = new NpcData(NpcRegistry.WILD_GOBLIN_BRUTE.getValue(), RaceRegistry.URUK, FACTION, TexturePresetsRegistry.WILD_GOBLIN_BRUTE, List.of( + WeightedGearData.create() + .add(EquipmentSlot.HEAD, GearSlotPool.create() + .add(WeightedItemData.create(Items.AIR).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_HELMET).withWeight(6)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_BRACED_HELMET).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COIF).withWeight(3)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_MAIL_COIF).withWeight(2)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_MORDOR_KETTLE_HAT)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_MORDOR_KETTLE_HAT_WITH_COIF)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_MORDOR_HELMET)) + ) + .add(EquipmentSlot.CHEST, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColor(DARK_BROWN_GOBLIN)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_SHOULDERS, DARK_BROWN_GOBLIN)) + + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColor(DARK_BROWN_GOBLIN)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_CAPE)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_SHOULDERS, DARK_BROWN_GOBLIN)) + ) + .add(EquipmentSlot.LEGS, GearSlotPool.create() + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COAT).withColor(DARK_BROWN_GOBLIN)) + .add(WeightedItemData.create(EquipmentItemsME.RUSTED_ORCISH_REINFORCED_LEATHER_SKIRT).withColor(DARK_BROWN_GOBLIN)) + .add(WeightedItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColor(DARK_BROWN_GOBLIN)) + ) + .add(EquipmentSlot.FEET, GearSlotPool.create(WeightedItemData.create(EquipmentItemsME.ORCISH_BROWN_FUR_BOOTS))) + .add(EquipmentSlot.MAINHAND, GearSlotPool.create() + .add(WeightedItemData.create(WeaponItemsME.ORCISH_BOW).withWeight(4)) + .add(WeightedItemData.create(WeaponItemsME.GUNDABAD_BOW)) + ) + ), NpcRegistry.COMMON_NPC_ATTRIBUTES); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/races/RacePools.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/races/RacePools.java new file mode 100644 index 0000000000..ee9916ddcd --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/races/RacePools.java @@ -0,0 +1,165 @@ +package net.sevenstars.middleearth.registries.content.races; + +import net.minecraft.entity.attribute.EntityAttributes; +import net.minecraft.util.Identifier; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.entity.ModEntityAttributes; +import net.sevenstars.middleearth.resources.datas.common.RaceType; +import net.sevenstars.middleearth.resources.datas.attributes.AttributePool; +import net.sevenstars.middleearth.resources.datas.attributes.AttributePoolElement; +import net.sevenstars.middleearth.resources.datas.races.Race; +import net.sevenstars.middleearth.resources.datas.common.EntityCategories; + +import java.util.HashMap; +import java.util.List; + +public class RacePools { + public final static Race DWARF; + public final static Race ELF; + public final static Race HOBBIT; + public final static Race HUMAN; + public final static Race ORC; + public final static Race URUK; + + static { + DWARF = new Race(Identifier.of(MiddleEarth.MOD_ID, "dwarf"), RaceType.DWARF, + new AttributePool() + .addElement(AttributePoolElement.create(ModEntityAttributes.CLIMBING_STRENGTH, 80.0f)) + .addElement(AttributePoolElement.create(ModEntityAttributes.POWDERED_SNOW_IMMUNITY, 1.0f)) + .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.81).withBuffReversed()) + .addElement(AttributePoolElement.create(EntityAttributes.MAX_HEALTH, 22.0)) + .addElement(AttributePoolElement.create(EntityAttributes.ATTACK_DAMAGE, 1.0) + .withModifier(MiddleEarth.of("dwarven_damage_modifier"), 10.0)) + .addElement(AttributePoolElement.create(EntityAttributes.ENTITY_INTERACTION_RANGE, 2.75)) + .addElement(AttributePoolElement.create(EntityAttributes.MOVEMENT_SPEED, 0.09)) + .addElement(AttributePoolElement.create(EntityAttributes.MINING_EFFICIENCY, 0.15)), + new HashMap<>(){{ + put(EntityCategories.SHARED, new AttributePool() + .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.81)) + .addElement(AttributePoolElement.create(EntityAttributes.MAX_HEALTH, 22.0)) + .addElement(AttributePoolElement.create(EntityAttributes.ATTACK_DAMAGE, 1.0)) + .addElement(AttributePoolElement.create(EntityAttributes.ENTITY_INTERACTION_RANGE, 2.75)) + .addElement(AttributePoolElement.create(EntityAttributes.MOVEMENT_SPEED, 0.09)) + .addElement(AttributePoolElement.create(EntityAttributes.MINING_EFFICIENCY, 0.15))); + put(EntityCategories.MALE, new AttributePool() + .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.75, 0.81)) + .addElement(AttributePoolElement.create(ModEntityAttributes.WIDTH_SCALE, 1.05, 1.1))); + put(EntityCategories.FEMALE, new AttributePool() + .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.71, 0.78)) + .addElement(AttributePoolElement.create(ModEntityAttributes.WIDTH_SCALE, 1, 1.03))); + }}, + List.of(), List.of()); + + ELF = new Race(Identifier.of(MiddleEarth.MOD_ID, "elf"), RaceType.ELF, + new AttributePool() + .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 1.06)) + .addElement(AttributePoolElement.create(EntityAttributes.MAX_HEALTH, 20.0)) + .addElement(AttributePoolElement.create(EntityAttributes.ATTACK_DAMAGE, 1.0)) + .addElement(AttributePoolElement.create(EntityAttributes.ENTITY_INTERACTION_RANGE, 3.25)) + .addElement(AttributePoolElement.create(EntityAttributes.MOVEMENT_SPEED, 0.1)) + .addElement(AttributePoolElement.create(EntityAttributes.FALL_DAMAGE_MULTIPLIER, 0.75).withBuffReversed()), + new HashMap<>(){{ + put(EntityCategories.SHARED, new AttributePool() + .addElement(AttributePoolElement.create(EntityAttributes.MAX_HEALTH, 14.0)) + .addElement(AttributePoolElement.create(EntityAttributes.ATTACK_DAMAGE, 0.9)) + .addElement(AttributePoolElement.create(EntityAttributes.ENTITY_INTERACTION_RANGE, 2.5)) + .addElement(AttributePoolElement.create(EntityAttributes.MOVEMENT_SPEED, 0.115)) + .addElement(AttributePoolElement.create(EntityAttributes.SNEAKING_SPEED, 0.435)) + .addElement(AttributePoolElement.create(EntityAttributes.FALL_DAMAGE_MULTIPLIER, 0.75))); + put(EntityCategories.MALE, new AttributePool() + .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 1.02, 1.06)) + .addElement(AttributePoolElement.create(ModEntityAttributes.WIDTH_SCALE, 0.93, 0.97))); + put(EntityCategories.FEMALE, new AttributePool() + .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 1.00, 1.03)) + .addElement(AttributePoolElement.create(ModEntityAttributes.WIDTH_SCALE, 0.91, 0.94))); + }}, + List.of(), List.of()); + + HOBBIT = new Race(Identifier.of(MiddleEarth.MOD_ID, "hobbit"), RaceType.HOBBIT, + new AttributePool() + .addElement(AttributePoolElement.create(EntityAttributes.MAX_HEALTH, 14.0)) + .addElement(AttributePoolElement.create(EntityAttributes.ATTACK_DAMAGE, 0.9)) + .addElement(AttributePoolElement.create(EntityAttributes.ENTITY_INTERACTION_RANGE, 2.5)) + .addElement(AttributePoolElement.create(EntityAttributes.MOVEMENT_SPEED, 0.115)) + .addElement(AttributePoolElement.create(EntityAttributes.SNEAKING_SPEED, 0.435)) + .addElement(AttributePoolElement.create(EntityAttributes.FALL_DAMAGE_MULTIPLIER, 0.90).withBuffReversed()) + .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.6).withBuffReversed()), + new HashMap<>(){{ + put(EntityCategories.SHARED, new AttributePool() + .addElement(AttributePoolElement.create(EntityAttributes.MAX_HEALTH, 14.0)) + .addElement(AttributePoolElement.create(EntityAttributes.ATTACK_DAMAGE, 0.9)) + .addElement(AttributePoolElement.create(EntityAttributes.ENTITY_INTERACTION_RANGE, 2.5)) + .addElement(AttributePoolElement.create(EntityAttributes.MOVEMENT_SPEED, 0.115)) + .addElement(AttributePoolElement.create(EntityAttributes.SNEAKING_SPEED, 0.435)) + .addElement(AttributePoolElement.create(EntityAttributes.FALL_DAMAGE_MULTIPLIER, 0.90))); + put(EntityCategories.MALE, new AttributePool() + .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.62, 0.68)) + .addElement(AttributePoolElement.create(ModEntityAttributes.WIDTH_SCALE, 0.94, 1.03))); + put(EntityCategories.FEMALE, new AttributePool() + .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.61, 0.65)) + .addElement(AttributePoolElement.create(ModEntityAttributes.WIDTH_SCALE, 0.94, 1))); + }}, + List.of(), List.of()); + + HUMAN = new Race(Identifier.of(MiddleEarth.MOD_ID, "human"), RaceType.HUMAN, + new AttributePool(), + new HashMap<>(){{ + put(EntityCategories.SHARED, new AttributePool() + .addElement(AttributePoolElement.create(EntityAttributes.ATTACK_DAMAGE, 1.0))); + put(EntityCategories.FEMALE, new AttributePool() + .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.95, 1.0)) + .addElement(AttributePoolElement.create(ModEntityAttributes.WIDTH_SCALE, 0.94, 1.03))); + put(EntityCategories.MALE, new AttributePool() + .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.9, 0.98)) + .addElement(AttributePoolElement.create(ModEntityAttributes.WIDTH_SCALE, 0.94, 1))); + }}, + List.of(), List.of()); + + ORC = new Race(Identifier.of(MiddleEarth.MOD_ID, "orc"), RaceType.ORC, + new AttributePool() + .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.83).withBuffReversed()) + .addElement(AttributePoolElement.create(EntityAttributes.MAX_HEALTH, 16.0)) + .addElement(AttributePoolElement.create(EntityAttributes.ATTACK_DAMAGE, 1.0)) + .addElement(AttributePoolElement.create(EntityAttributes.ENTITY_INTERACTION_RANGE, 2.75)) + .addElement(AttributePoolElement.create(EntityAttributes.MOVEMENT_SPEED, 0.11)) + .addElement(AttributePoolElement.create(EntityAttributes.STEP_HEIGHT, 1.0)), + new HashMap<>(){{ + put(EntityCategories.SHARED, new AttributePool() + .addElement(AttributePoolElement.create(EntityAttributes.MAX_HEALTH, 16.0)) + .addElement(AttributePoolElement.create(EntityAttributes.ATTACK_DAMAGE, 1.0)) + .addElement(AttributePoolElement.create(EntityAttributes.ENTITY_INTERACTION_RANGE, 2.75)) + .addElement(AttributePoolElement.create(EntityAttributes.MOVEMENT_SPEED, 0.11)) + .addElement(AttributePoolElement.create(EntityAttributes.STEP_HEIGHT, 1.0))); + put(EntityCategories.MALE, new AttributePool() + .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.65, 0.72)) + .addElement(AttributePoolElement.create(ModEntityAttributes.WIDTH_SCALE, 0.94, 1.03))); + put(EntityCategories.FEMALE, new AttributePool() + .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.63, 0.70)) + .addElement(AttributePoolElement.create(ModEntityAttributes.WIDTH_SCALE, 0.94, 1))); + }}, + List.of(), List.of()); + + URUK = new Race(Identifier.of(MiddleEarth.MOD_ID, "uruk"), RaceType.URUK, + new AttributePool() + .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 1.0)) + .addElement(AttributePoolElement.create(EntityAttributes.MAX_HEALTH, 22.0)) + .addElement(AttributePoolElement.create(EntityAttributes.ATTACK_DAMAGE, 1.0)) + .addElement(AttributePoolElement.create(EntityAttributes.ENTITY_INTERACTION_RANGE, 3.0)) + .addElement(AttributePoolElement.create(EntityAttributes.MOVEMENT_SPEED, 0.09)) + .addElement(AttributePoolElement.create(EntityAttributes.BURNING_TIME, 0.70).withBuffReversed()), + new HashMap<>(){{ + put(EntityCategories.SHARED, new AttributePool() + .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 1.0)) + .addElement(AttributePoolElement.create(EntityAttributes.MAX_HEALTH, 22.0)) + .addElement(AttributePoolElement.create(EntityAttributes.ATTACK_DAMAGE, 1.0)) + .addElement(AttributePoolElement.create(EntityAttributes.ENTITY_INTERACTION_RANGE, 3.0)) + .addElement(AttributePoolElement.create(EntityAttributes.MOVEMENT_SPEED, 0.09)) + .addElement(AttributePoolElement.create(EntityAttributes.STEP_HEIGHT, 0.70))); + put(EntityCategories.MALE, new AttributePool() + .addElement(AttributePoolElement.create(ModEntityAttributes.WIDTH_SCALE, 0.94, 1.03))); + put(EntityCategories.FEMALE, new AttributePool() + .addElement(AttributePoolElement.create(ModEntityAttributes.WIDTH_SCALE, 0.94, 1))); + }}, + List.of(), List.of()); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/races/RaceRegistry.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/races/RaceRegistry.java new file mode 100644 index 0000000000..e4a9a613f3 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/races/RaceRegistry.java @@ -0,0 +1,38 @@ +package net.sevenstars.middleearth.registries.content.races; + +import net.minecraft.registry.Registerable; +import net.minecraft.registry.Registry; +import net.minecraft.registry.RegistryEntryLookup; +import net.minecraft.registry.RegistryKey; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.datageneration.content.TranslationEntries; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; +import net.sevenstars.middleearth.resources.datas.races.Race; + +public class RaceRegistry { + private static final RegistryKey> RACE_KEY = DynamicRegistriesME.RACE; + + public final static RegistryKey DWARF = DynamicRegistriesME.of(RACE_KEY, MiddleEarth.of("dwarf")); + public final static RegistryKey ELF = DynamicRegistriesME.of(RACE_KEY, MiddleEarth.of("elf")); + public final static RegistryKey HOBBIT = DynamicRegistriesME.of(RACE_KEY, MiddleEarth.of("hobbit")); + public final static RegistryKey HUMAN = DynamicRegistriesME.of(RACE_KEY, MiddleEarth.of("human")); + public final static RegistryKey ORC = DynamicRegistriesME.of(RACE_KEY, MiddleEarth.of("orc")); + public final static RegistryKey URUK = DynamicRegistriesME.of(RACE_KEY, MiddleEarth.of("uruk")); + + public static void bootstrap(Registerable context) { + RegistryEntryLookup registryEntryLookup = context.getRegistryLookup(RACE_KEY); + + register(context, registryEntryLookup, DWARF, RacePools.DWARF); + register(context, registryEntryLookup, ELF, RacePools.ELF); + register(context, registryEntryLookup, HOBBIT, RacePools.HOBBIT); + register(context, registryEntryLookup, HUMAN, RacePools.HUMAN); + register(context, registryEntryLookup, ORC, RacePools.ORC); + register(context, registryEntryLookup, URUK, RacePools.URUK); + } + + private static void register(Registerable context, RegistryEntryLookup registryEntryLookup, RegistryKey registryKey, Race element){ + DynamicRegistriesME.register(context, registryEntryLookup, registryKey, element); + // [LANG datagen] + TranslationEntries.raceEntries.add(registryKey.getValue().getPath()); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/spidervariants/SpiderVariantRegistry.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/spidervariants/SpiderVariantRegistry.java new file mode 100644 index 0000000000..08c546290e --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/spidervariants/SpiderVariantRegistry.java @@ -0,0 +1,39 @@ +package net.sevenstars.middleearth.registries.content.spidervariants; + +import net.minecraft.entity.spawn.SpawnConditionSelectors; +import net.minecraft.registry.*; +import net.minecraft.registry.tag.TagKey; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.entity.spider.SpiderVariant; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; + +public class SpiderVariantRegistry { + private static final RegistryKey> SPIDER_VARIANTS_KEY = DynamicRegistriesME.SPIDER_VARIANTS; + + public static final RegistryKey MIRKWOOD = DynamicRegistriesME.of(SPIDER_VARIANTS_KEY, MiddleEarth.of("mirkwood")); + public static final RegistryKey CAVE = DynamicRegistriesME.of(SPIDER_VARIANTS_KEY, MiddleEarth.of("cave")); + public static final RegistryKey MORDOR = DynamicRegistriesME.of(SPIDER_VARIANTS_KEY, MiddleEarth.of("mordor")); + public static final RegistryKey DEFAULT = MIRKWOOD; + + + public static void bootstrap(Registerable context) { + RegistryEntryLookup registryEntryLookup = context.getRegistryLookup(SPIDER_VARIANTS_KEY); + + register(context, registryEntryLookup, MIRKWOOD, new SpiderVariant( + SpiderVariantRegistryHelper.createAssetInfos("mirkwood"), + SpawnConditionSelectors.createFallback(0))); + register(context, registryEntryLookup, CAVE, new SpiderVariant( + SpiderVariantRegistryHelper.createAssetInfos("blind"), + SpiderVariantRegistryHelper.createSpawnConditions(context, TagKey.of(RegistryKeys.BIOME, MiddleEarth.of("is_cave")), 1))); + register(context, registryEntryLookup, MORDOR, new SpiderVariant( + SpiderVariantRegistryHelper.createAssetInfos("mordor"), + SpiderVariantRegistryHelper.createSpawnConditions(context, TagKey.of(RegistryKeys.BIOME, MiddleEarth.of("is_mordor")), 2))); + } + + private static void register(Registerable context, RegistryEntryLookup registryEntryLookup, RegistryKey registryKey, SpiderVariant element){ + DynamicRegistriesME.register(context, registryEntryLookup, registryKey, element); + // [LANG datagen] + // None + } + +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/spidervariants/SpiderVariantRegistryHelper.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/spidervariants/SpiderVariantRegistryHelper.java new file mode 100644 index 0000000000..2213112fb4 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/spidervariants/SpiderVariantRegistryHelper.java @@ -0,0 +1,33 @@ +package net.sevenstars.middleearth.registries.content.spidervariants; + +import net.minecraft.entity.spawn.BiomeSpawnCondition; +import net.minecraft.entity.spawn.SpawnConditionSelectors; +import net.minecraft.registry.Registerable; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.entry.RegistryEntryList; +import net.minecraft.registry.tag.TagKey; +import net.minecraft.util.AssetInfo; +import net.minecraft.world.biome.Biome; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.entity.spider.SpiderVariant; + +public class SpiderVariantRegistryHelper { + private static final String TEXTURE_PATH = "entities/spiders/"; + private static final String ENTITY_NAME = "_shelobite_"; + + + public static SpiderVariant.SpiderAssetInfo createAssetInfos(String textureName){ + return new SpiderVariant.SpiderAssetInfo( + new AssetInfo(MiddleEarth.of(TEXTURE_PATH + textureName + ENTITY_NAME + "larva")), + new AssetInfo(MiddleEarth.of(TEXTURE_PATH + textureName + ENTITY_NAME + "scuttler")), + new AssetInfo(MiddleEarth.of(TEXTURE_PATH + textureName + "_spawn_of_shelob"))); + } + + public static SpawnConditionSelectors createSpawnConditions(Registerable registry, TagKey biomeTag, int priority) { + return createSpawnConditions(registry.getRegistryLookup(RegistryKeys.BIOME).getOrThrow(biomeTag), priority); + } + + public static SpawnConditionSelectors createSpawnConditions(RegistryEntryList requiredBiomes, int priority) { + return SpawnConditionSelectors.createSingle(new BiomeSpawnCondition(requiredBiomes), priority); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/structuremanagerdatas/StructureManagerDataPools.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/structuremanagerdatas/StructureManagerDataPools.java new file mode 100644 index 0000000000..d15eab7b0c --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/structuremanagerdatas/StructureManagerDataPools.java @@ -0,0 +1,110 @@ +package net.sevenstars.middleearth.registries.content.structuremanagerdatas; + +import net.minecraft.entity.EntityType; +import net.minecraft.util.Identifier; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.entity.EntitiesME; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.registries.content.npcs.NpcRegistry; +import net.sevenstars.middleearth.registries.content.npcs.pools.*; +import net.sevenstars.middleearth.resources.datas.structure_manager_datas.SpawnNestNodeData; +import net.sevenstars.middleearth.resources.datas.structure_manager_datas.StructureManagerData; +import net.sevenstars.middleearth.resources.datas.structure_manager_datas.StructureSpawnNestPool; + +import java.util.List; + +public class StructureManagerDataPools { + public final static StructureManagerData GONDOR_GENERIC_NESTS; + public final static StructureManagerData EREBOR_GENERIC_NESTS; + public final static StructureManagerData DALE_KEEP_NESTS; + + static { + GONDOR_GENERIC_NESTS = new StructureManagerData(Identifier.of(MiddleEarth.MOD_ID, "gondor_generic_nests"), List.of( + new SpawnNestNodeData(MiddleEarth.fetchId("gondor_generic_nests.captain_nest"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 1).SetNpcData(FactionRegistry.GONDOR, GondorianNpcDataPool.LEADER.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 2).SetNpcData(FactionRegistry.GONDOR, GondorianNpcDataPool.KNIGHT.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 3).SetNpcData(FactionRegistry.GONDOR, GondorianNpcDataPool.VETERAN.getId()).SetFixAmount(1) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("gondor_generic_nests.barrack_nest"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 3).SetNpcData(FactionRegistry.GONDOR, GondorianNpcDataPool.SOLDIER.getId()).SetRangeAmount(2,3), + new StructureSpawnNestPool(EntitiesME.NPC, 2).SetNpcData(FactionRegistry.GONDOR, GondorianNpcDataPool.VETERAN.getId()).SetRangeAmount(2,3), + new StructureSpawnNestPool(EntitiesME.NPC, 5).SetNpcData(FactionRegistry.GONDOR, GondorianNpcDataPool.MILITIA.getId()).SetRangeAmount(2,4) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("gondor_generic_nests.worker_nest"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 2).SetNpcData(FactionRegistry.GONDOR, NpcRegistry.GONDOR_PEASANT.getValue()).SetRangeAmount(1,3) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("gondor_generic_nests.prisoner_nest"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 5).SetNpcData(FactionRegistry.MORDOR, MordorNpcDataPool.SNAGA.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 3).SetNpcData(FactionRegistry.LONGBEARDS_EREBOR, NpcRegistry.GONDOR_PEASANT.getValue()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 1).SetNpcData(FactionRegistry.LOTHLORIEN, NpcRegistry.DALE_PEASANT.getValue()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 3).SetNpcData(FactionRegistry.BRIGAND, NpcRegistry.DALE_PEASANT.getValue()).SetFixAmount(1) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("gondor_generic_nests.stable_nest"), 1500, List.of( + new StructureSpawnNestPool(EntityType.HORSE, 5).SetFixAmount(1), + new StructureSpawnNestPool(EntityType.DONKEY, 2).SetFixAmount(1), + new StructureSpawnNestPool(EntityType.PIG, 1).SetFixAmount(1) + )) + )); + + EREBOR_GENERIC_NESTS = new StructureManagerData(Identifier.of(MiddleEarth.MOD_ID, "erebor_generic_nests"), List.of( + new SpawnNestNodeData(MiddleEarth.fetchId("erebor_generic_nests.captain_nest"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 1).SetNpcData(FactionRegistry.LONGBEARDS_EREBOR, EreborNpcDataPool.LEADER.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 2).SetNpcData(FactionRegistry.LONGBEARDS_EREBOR, EreborNpcDataPool.GATEWARDEN.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 3).SetNpcData(FactionRegistry.LONGBEARDS_EREBOR, EreborNpcDataPool.ELITE.getId()).SetFixAmount(1) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("erebor_generic_nests.barrack_nest"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 3).SetNpcData(FactionRegistry.LONGBEARDS_EREBOR, EreborNpcDataPool.SOLDIER.getId()).SetRangeAmount(2,3), + new StructureSpawnNestPool(EntitiesME.NPC, 2).SetNpcData(FactionRegistry.LONGBEARDS_EREBOR, EreborNpcDataPool.ARCHER.getId()).SetRangeAmount(2,3), + new StructureSpawnNestPool(EntitiesME.NPC, 5).SetNpcData(FactionRegistry.LONGBEARDS_EREBOR, EreborNpcDataPool.MILITIA.getId()).SetRangeAmount(2,4) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("erebor_generic_nests.worker_nest"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 2).SetNpcData(FactionRegistry.LONGBEARDS_EREBOR, EreborNpcDataPool.MINER.getId()).SetRangeAmount(1,3), + new StructureSpawnNestPool(EntitiesME.NPC, 3).SetNpcData(FactionRegistry.LONGBEARDS_EREBOR, EreborNpcDataPool.PEASANT.getId()).SetRangeAmount(1,3) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("erebor_generic_nests.prisoner_nest"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 5).SetNpcData(FactionRegistry.MORDOR, MordorNpcDataPool.SNAGA.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 3).SetNpcData(FactionRegistry.LONGBEARDS_EREBOR, NpcRegistry.DALE_PEASANT.getValue()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 1).SetNpcData(FactionRegistry.LOTHLORIEN, NpcRegistry.DALE_PEASANT.getValue()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 3).SetNpcData(FactionRegistry.BRIGAND, NpcRegistry.DALE_PEASANT.getValue()).SetFixAmount(1) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("erebor_generic_nests.stable_nest"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.BROADHOOF_GOAT, 5).SetFixAmount(1), + new StructureSpawnNestPool(EntityType.PIG, 3).SetFixAmount(1), + new StructureSpawnNestPool(EntityType.DONKEY, 2).SetFixAmount(1) + )) + )); + + DALE_KEEP_NESTS = new StructureManagerData(Identifier.of(MiddleEarth.MOD_ID, "dale_keep_nests"), List.of( + new SpawnNestNodeData(MiddleEarth.fetchId("dale_keep_nests.captain"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 1).SetNpcData(FactionRegistry.DALE, DalishNpcDataPool.VETERAN.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 2).SetNpcData(FactionRegistry.DALE, DalishNpcDataPool.SERGEANT.getId()).SetFixAmount(1) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("dale_keep_nests.stable_carers"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 2).SetNpcData(FactionRegistry.DALE, DalishNpcDataPool.PEASANT.getId()).SetFixAmount(2) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("dale_keep_nests.stable"), 1500, List.of( + new StructureSpawnNestPool(EntityType.DONKEY, 1).SetFixAmount(1) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("dale_keep_nests.small_prisoner_cell"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 5).SetNpcData(FactionRegistry.DALE, BrigandNpcDataPool.THIEF.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 2).SetNpcData(FactionRegistry.DALE, BrigandNpcDataPool.THUG.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 1).SetNpcData(FactionRegistry.DALE, BrigandNpcDataPool.CHIEFTAIN.getId()).SetFixAmount(1) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("dale_keep_nests.large_prisoner_cell"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 5).SetNpcData(FactionRegistry.DALE, BrigandNpcDataPool.THIEF.getId()).SetRangeAmount(1,3), + new StructureSpawnNestPool(EntitiesME.NPC, 2).SetNpcData(FactionRegistry.DALE, BrigandNpcDataPool.THUG.getId()).SetRangeAmount(1,3), + new StructureSpawnNestPool(EntitiesME.NPC, 1).SetNpcData(FactionRegistry.DALE, BrigandNpcDataPool.CHIEFTAIN.getId()).SetFixAmount(1) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("dale_keep_nests.soldier"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 4).SetNpcData(FactionRegistry.DALE, DalishNpcDataPool.SOLDIER.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 3).SetNpcData(FactionRegistry.DALE, DalishNpcDataPool.ARCHER.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 2).SetNpcData(FactionRegistry.DALE, DalishNpcDataPool.MILITIA.getId()).SetFixAmount(1) + )), + new SpawnNestNodeData(MiddleEarth.fetchId("dale_keep_nests.elite"), 1500, List.of( + new StructureSpawnNestPool(EntitiesME.NPC, 4).SetNpcData(FactionRegistry.DALE, DalishNpcDataPool.KNIGHT.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 3).SetNpcData(FactionRegistry.DALE, DalishNpcDataPool.VETERAN.getId()).SetFixAmount(1), + new StructureSpawnNestPool(EntitiesME.NPC, 2).SetNpcData(FactionRegistry.DALE, DalishNpcDataPool.SOLDIER.getId()).SetFixAmount(1) + )) + )); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/structuremanagerdatas/StructureManagerDataRegistry.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/structuremanagerdatas/StructureManagerDataRegistry.java new file mode 100644 index 0000000000..6b025f6a13 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/structuremanagerdatas/StructureManagerDataRegistry.java @@ -0,0 +1,31 @@ +package net.sevenstars.middleearth.registries.content.structuremanagerdatas; + +import net.minecraft.registry.Registerable; +import net.minecraft.registry.Registry; +import net.minecraft.registry.RegistryEntryLookup; +import net.minecraft.registry.RegistryKey; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; +import net.sevenstars.middleearth.resources.datas.structure_manager_datas.StructureManagerData; + +public class StructureManagerDataRegistry { + private static final RegistryKey> STRUCTURE_MANAGER_DATA_KEY = DynamicRegistriesME.STRUCTURE_MANAGER_DATA; + + public final static RegistryKey GONDOR_GENERIC_NESTS = DynamicRegistriesME.of(STRUCTURE_MANAGER_DATA_KEY, MiddleEarth.of("gondor_generic_nests")); + public final static RegistryKey EREBOR_GENERIC_NESTS = DynamicRegistriesME.of(STRUCTURE_MANAGER_DATA_KEY, MiddleEarth.of("erebor_generic_nests")); + public final static RegistryKey DALE_KEEP_NESTS = DynamicRegistriesME.of(STRUCTURE_MANAGER_DATA_KEY, MiddleEarth.of("dale_keep_nests")); + + public static void bootstrap(Registerable context) { + RegistryEntryLookup registryEntryLookup = context.getRegistryLookup(STRUCTURE_MANAGER_DATA_KEY); + + register(context, registryEntryLookup, GONDOR_GENERIC_NESTS, StructureManagerDataPools.GONDOR_GENERIC_NESTS); + register(context, registryEntryLookup, EREBOR_GENERIC_NESTS, StructureManagerDataPools.EREBOR_GENERIC_NESTS); + register(context, registryEntryLookup, DALE_KEEP_NESTS, StructureManagerDataPools.DALE_KEEP_NESTS); + } + + private static void register(Registerable context, RegistryEntryLookup registryEntryLookup, RegistryKey registryKey, StructureManagerData element){ + DynamicRegistriesME.register(context, registryEntryLookup, registryKey, element); + // [LANG datagen] + //TranslationEntries.raceEntries.add(registryKey.getValue().getPath()); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/TexturePresetsRegistry.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/TexturePresetsRegistry.java new file mode 100644 index 0000000000..5f355dcebf --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/TexturePresetsRegistry.java @@ -0,0 +1,140 @@ +package net.sevenstars.middleearth.registries.content.texturepresets; + +import net.minecraft.registry.Registerable; +import net.minecraft.registry.Registry; +import net.minecraft.registry.RegistryEntryLookup; +import net.minecraft.registry.RegistryKey; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; +import net.sevenstars.middleearth.registries.content.factions.FactionRegistry; +import net.sevenstars.middleearth.registries.content.texturepresets.pools.GenericTexturePresetsPool; +import net.sevenstars.middleearth.registries.content.texturepresets.pools.brigand.BrigandTexturePresetsPool; +import net.sevenstars.middleearth.registries.content.texturepresets.pools.dale.DaleTexturePresetsPool; +import net.sevenstars.middleearth.registries.content.texturepresets.pools.gondor.GondorTexturePresetsPool; +import net.sevenstars.middleearth.registries.content.texturepresets.pools.hobgoblintribes.GundabadTexturePresetsPool.GundabadTexturePresetsPool; +import net.sevenstars.middleearth.registries.content.texturepresets.pools.hobgoblintribes.HobgoblinTribesTexturePresetsPool; +import net.sevenstars.middleearth.registries.content.texturepresets.pools.isengard.IsengardTexturePresetsPool; +import net.sevenstars.middleearth.registries.content.texturepresets.pools.longbeards.LongbeardsTexturePresetsPool; +import net.sevenstars.middleearth.registries.content.texturepresets.pools.longbeards.erebor.EreborTexturePresetsPool; +import net.sevenstars.middleearth.registries.content.texturepresets.pools.lothlorien.LothlorienTexturePresetsPool; +import net.sevenstars.middleearth.registries.content.texturepresets.pools.mordor.MordorTexturePresetsPool; +import net.sevenstars.middleearth.registries.content.texturepresets.pools.rohan.RohanTexturePresetsPool; +import net.sevenstars.middleearth.registries.content.texturepresets.pools.shire.ShireTexturePresetsPool; +import net.sevenstars.middleearth.registries.content.texturepresets.pools.wildgoblin.WildGoblinTexturePresetsPool; +import net.sevenstars.middleearth.resources.datas.factions.Faction; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePresetDataPool; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class TexturePresetsRegistry { + private static final RegistryKey> NPC_TEXTURE_DATA_KEY = DynamicRegistriesME.TEXTURE_PRESETS; + + /* [GENERIC] */ + public final static RegistryKey GENERIC_HUMAN = of("generic_human"); + + /* [BRIGAND] */ + public final static RegistryKey BRIGAND_THUG = of(FactionRegistry.BRIGAND, "thug"); + public final static RegistryKey BRIGAND_MERCENARY = of(FactionRegistry.BRIGAND, "mercenary"); + public final static RegistryKey BRIGAND_CHIEF = of(FactionRegistry.BRIGAND, "chief"); + + /* [WILD GOBLINS] */ + public final static RegistryKey WILD_GOBLIN_WEAK = of(FactionRegistry.WILD_GOBLINS, "weak"); + public final static RegistryKey WILD_GOBLIN_WARRIOR = of(FactionRegistry.WILD_GOBLINS, "warrior"); + public final static RegistryKey WILD_GOBLIN_BRUTE = of(FactionRegistry.WILD_GOBLINS, "brute"); + + /* [DALE] */ + public final static RegistryKey DALE_PEASANT = of(FactionRegistry.DALE, "peasant"); + public final static RegistryKey DALE_SOLDIER = of(FactionRegistry.DALE, "soldier"); + public final static RegistryKey DALE_LORD = of(FactionRegistry.DALE, "lord"); + + + /* [GONDOR] */ + public final static RegistryKey GONDOR_PEASANT = of(FactionRegistry.GONDOR, "peasant"); + public final static RegistryKey GONDOR_SOLDIER = of(FactionRegistry.GONDOR, "soldier"); + public final static RegistryKey GONDOR_LORD = of(FactionRegistry.GONDOR, "lord"); + + /* [ROHAN] */ + public final static RegistryKey ROHAN_PEASANT = of(FactionRegistry.ROHAN, "peasant"); + public final static RegistryKey ROHAN_SOLDIER = of(FactionRegistry.ROHAN, "soldier"); + public final static RegistryKey ROHAN_LORD = of(FactionRegistry.ROHAN, "lord"); + + /* [SHIRE] */ + public final static RegistryKey SHIRE_PEASANT = of(FactionRegistry.SHIRE, "peasant"); + public final static RegistryKey SHIRE_MILITIA = of(FactionRegistry.SHIRE, "militia"); + public final static RegistryKey SHIRE_SHIRRIFF = of(FactionRegistry.SHIRE, "shirriff"); + + /* [LONGBEARDS.EREBOR] */ + public final static RegistryKey LONGBEARDS_EREBOR_DWARF = of(FactionRegistry.LONGBEARDS_EREBOR, "dwarf"); + public final static RegistryKey LONGBEARDS_EREBOR_DWARF_SOLDIER = of(FactionRegistry.LONGBEARDS_EREBOR, "dwarf_soldier"); + public final static RegistryKey LONGBEARDS_EREBOR_MIGHTY_DWARF = of(FactionRegistry.LONGBEARDS_EREBOR, "mighty_dwarf"); + + /* [LOTHLORIEN] */ + public final static RegistryKey LOTHLORIEN_ELF = of(FactionRegistry.LOTHLORIEN, "elf"); + public final static RegistryKey LOTHLORIEN_LORD = of(FactionRegistry.LOTHLORIEN, "lord"); + + /* [MORDOR] */ + public final static RegistryKey MORDOR_BLACK_NUMENOREAN = of(FactionRegistry.MORDOR, "black_numenorean"); + public final static RegistryKey MORDOR_ORC = of(FactionRegistry.MORDOR, "orc"); + public final static RegistryKey MORDOR_BLACK_URUK = of(FactionRegistry.MORDOR, "black_uruk"); + + /* [HOBGOBLIN TRIBES.GUNDABAD] */ + public final static RegistryKey GUNDABAD_GOBLIN = of(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD, "goblin"); + public final static RegistryKey GUNDABAD_HOBGOBLIN = of(FactionRegistry.HOBGOBLIN_TRIBES_GUNDABAD, "hobgoblin"); + + /* [ISENGARD] */ + public final static RegistryKey ISENGARD_ORC = of(FactionRegistry.ISENGARD, "orc"); + public final static RegistryKey ISENGARD_URUK_HAI = of(FactionRegistry.ISENGARD, "uruk_hai"); + public final static RegistryKey ISENGARD_HUMAN = of(FactionRegistry.ISENGARD, "human"); + + + public static void bootstrap(Registerable context) { + RegistryEntryLookup registryEntryLookup = context.getRegistryLookup(NPC_TEXTURE_DATA_KEY); + + /* [ADD ALL POOLS BELOW] */ + registerAll(context, registryEntryLookup, GenericTexturePresetsPool.fetchAll()); + registerAll(context, registryEntryLookup, BrigandTexturePresetsPool.fetchAll()); + registerAll(context, registryEntryLookup, WildGoblinTexturePresetsPool.fetchAll()); + registerAll(context, registryEntryLookup, LongbeardsTexturePresetsPool.fetchAll()); + registerAll(context, registryEntryLookup, EreborTexturePresetsPool.fetchAll()); + registerAll(context, registryEntryLookup, DaleTexturePresetsPool.fetchAll()); + registerAll(context, registryEntryLookup, GondorTexturePresetsPool.fetchAll()); + registerAll(context, registryEntryLookup, RohanTexturePresetsPool.fetchAll()); + registerAll(context, registryEntryLookup, ShireTexturePresetsPool.fetchAll()); + registerAll(context, registryEntryLookup, LothlorienTexturePresetsPool.fetchAll()); + + registerAll(context, registryEntryLookup, MordorTexturePresetsPool.fetchAll()); + registerAll(context, registryEntryLookup, HobgoblinTribesTexturePresetsPool.fetchAll()); + registerAll(context, registryEntryLookup, GundabadTexturePresetsPool.fetchAll()); + registerAll(context, registryEntryLookup, IsengardTexturePresetsPool.fetchAll()); + } + + private static void registerAll(Registerable context, RegistryEntryLookup registryEntryLookup, List npcTextureDatas) { + for(RegisterableNpcTextureData registerable : npcTextureDatas){ + register(context, registryEntryLookup, registerable.npcTextureDataRegistryKey, registerable.content); + } + } + + private static void register(Registerable context, RegistryEntryLookup registryEntryLookup, RegistryKey registryKey, TexturePresetDataPool element){ + DynamicRegistriesME.register(context, registryEntryLookup, registryKey, element); + // [LANG datagen] + // N/A + } + + private static RegistryKey of(String... names) { + return RegistryKey.of(DynamicRegistriesME.TEXTURE_PRESETS, MiddleEarth.of(names)); + } + + private static RegistryKey of(RegistryKey base, String... names) { + + ArrayList aggregateNames = new ArrayList(); + aggregateNames.add(base.getValue().getPath()); + aggregateNames.addAll(Arrays.stream(names).toList()); + + String[] stringArray = aggregateNames.toArray(new String[0]); + return RegistryKey.of(DynamicRegistriesME.TEXTURE_PRESETS, MiddleEarth.of(stringArray)); + } + + public record RegisterableNpcTextureData (RegistryKey npcTextureDataRegistryKey, TexturePresetDataPool content){ } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/GenericTexturePresetsPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/GenericTexturePresetsPool.java new file mode 100644 index 0000000000..75e0cd720e --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/GenericTexturePresetsPool.java @@ -0,0 +1,161 @@ +package net.sevenstars.middleearth.registries.content.texturepresets.pools; + +import net.sevenstars.api.dtos.WeightedPool; +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; +import net.sevenstars.middleearth.registries.CharacterMaterialsRegistryME; +import net.sevenstars.middleearth.registries.CharacterPatternsRegistryME; +import net.sevenstars.middleearth.resources.datas.common.CharacterMaterialTypes; +import net.sevenstars.middleearth.resources.datas.common.CharacterPatternTypes; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePreset; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePresetDataPool; +import net.sevenstars.middleearth.resources.datas.common.EntityCategories; +import net.sevenstars.api.dtos.WeightedIdentifier; +import net.sevenstars.middleearth.resources.datas.texture_presets.WeightedTexturePresetHolder; + +import java.util.HashMap; +import java.util.List; +import java.util.stream.Stream; + +public class GenericTexturePresetsPool { + private static final class UtilData { + public static final List DEFAULT_HAIR = List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.COLD_BLACK_COPPER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.COLD_BLACK_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.COLD_BLACK_SILVER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.COLD_BLACK_ALMANDINE), + + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLACK_COPPER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLACK_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLACK_SILVER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLACK_ALMANDINE), + + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BROWN_COPPER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BROWN_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BROWN_SILVER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BROWN_ALMANDINE), + + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.DARK_BROWN_COPPER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.DARK_BROWN_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.DARK_BROWN_SILVER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.DARK_BROWN_ALMANDINE), + + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.STRAW_COPPER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.STRAW_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.STRAW_SILVER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.STRAW_ALMANDINE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.STRAW_BEADS), + + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GINGER_COPPER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GINGER_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GINGER_SILVER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GINGER_ALMANDINE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GINGER_BEADS), + + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.WHITE_COPPER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.WHITE_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.WHITE_ALMANDINE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.WHITE_BEADS), + + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GRAY_COPPER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GRAY_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GRAY_ALMANDINE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GRAY_BEADS) + ); + } + + private final static WeightedTexturePresetHolder BASE_PRESET; + private final static WeightedTexturePresetHolder HUMAN_MALE_PRESET; + private final static WeightedTexturePresetHolder HUMAN_FEMALE_PRESET; + + private final static TexturePresetDataPool COMMON; + + public static List fetchAll() { + return List.of( + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.GENERIC_HUMAN, COMMON) + ); + } + //region [PRESETS] + static { + BASE_PRESET = new WeightedTexturePresetHolder() + .withMaterials(CharacterMaterialTypes.SKIN, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.TAN), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.TAN_DESATURATED), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.PALE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.BEIGE) + )) + .withMaterials(CharacterMaterialTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.BLUE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.GREEN), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.DARK_GREEN), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.NAVY), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.BROWN) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.COMMON) + )) + .withMaterials(CharacterMaterialTypes.HAIR, UtilData.DEFAULT_HAIR) + .withPatterns(CharacterPatternTypes.EYEBROW, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.UNI), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.BASIC), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.SHORT) + )); + + HUMAN_MALE_PRESET = new WeightedTexturePresetHolder() + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.MUSCULAR) + )) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey( CharacterPatternsRegistryME.Skins.Head.MALE) + )) + .withPatterns(CharacterPatternTypes.EYEBROW, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.UNI), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.BASIC), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.SHORT) + )) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + TexturePreset.EMPTY_VALUE_KEY, + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BOWL), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BALD_SIDES), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SHORT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.TOP_BALDING), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SIDE_BALDING) + )) + .withPatterns(CharacterPatternTypes.BEARD, Stream.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.CLEAN), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.SHORT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.SINGLE), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.UNCLEAN_ORNAMENTED), + null).toList()); + HUMAN_FEMALE_PRESET = new WeightedTexturePresetHolder() + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.FEMALE) + )) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.FEMALE) + )) + .withPatterns(CharacterPatternTypes.EYEBROW, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.UNI), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.BASIC), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.SHORT) + )) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + TexturePreset.EMPTY_VALUE_KEY, + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.LONG), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SEMI_LONG), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.VERY_LONG) + )); + } + // endregion + + // region [DATAS] + static { + COMMON= new TexturePresetDataPool( + new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(HUMAN_MALE_PRESET)); + put(EntityCategories.FEMALE, new WeightedPool<>(HUMAN_FEMALE_PRESET)); + }} + ); + } + // endregion +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/brigand/BrigandTexturePresetsPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/brigand/BrigandTexturePresetsPool.java new file mode 100644 index 0000000000..5039fa587a --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/brigand/BrigandTexturePresetsPool.java @@ -0,0 +1,184 @@ +package net.sevenstars.middleearth.registries.content.texturepresets.pools.brigand; + +import net.sevenstars.api.dtos.WeightedPool; +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; +import net.sevenstars.middleearth.registries.CharacterMaterialsRegistryME; +import net.sevenstars.middleearth.registries.CharacterPatternsRegistryME; +import net.sevenstars.middleearth.resources.datas.common.CharacterMaterialTypes; +import net.sevenstars.middleearth.resources.datas.common.CharacterPatternTypes; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePreset; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePresetDataPool; +import net.sevenstars.middleearth.resources.datas.common.EntityCategories; +import net.sevenstars.api.dtos.WeightedIdentifier; +import net.sevenstars.middleearth.resources.datas.texture_presets.WeightedTexturePresetHolder; + +import java.util.HashMap; +import java.util.List; + +public class BrigandTexturePresetsPool { + private final static WeightedTexturePresetHolder BASE_PRESET; + private final static WeightedTexturePresetHolder MALE_PRESET; + private final static WeightedTexturePresetHolder FEMALE_PRESET; + private final static WeightedTexturePresetHolder CHIEF_PRESET; + + public final static TexturePresetDataPool THUG; + public final static TexturePresetDataPool MERCENARY; + public final static TexturePresetDataPool CHIEF; + + public static List fetchAll() { + return List.of( + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.BRIGAND_THUG, THUG), + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.BRIGAND_MERCENARY, MERCENARY), + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.BRIGAND_CHIEF, CHIEF) + ); + } + + //region [PRESETS] + static { + BASE_PRESET = new WeightedTexturePresetHolder() + .withMaterials(CharacterMaterialTypes.SKIN, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.PALE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.BEIGE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.TAN_DESATURATED), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.DARK_BEIGE) + )) + .withPatterns(CharacterPatternTypes.EAR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.SQUARE), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.NORMAL) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.COMMON) + )) + .withMaterials(CharacterMaterialTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.GREEN), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.DARK_GREEN), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.BLACK), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.BROWN) + )) + .withMaterials(CharacterMaterialTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.DIRTY_BROWN_SILVER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GREASY_SILVER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GRAY_BEADS), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BROWN_SILVER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BROWN_BEADS), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.DARK_BROWN_SILVER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLACK_SILVER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.COLD_BLACK_SILVER) + )) + .withPatterns(CharacterPatternTypes.EYEBROW, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.BASIC) + )); + + MALE_PRESET = new WeightedTexturePresetHolder() + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.MALE) + )) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.MUSCULAR), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.FAT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.SKIN_TO_BONE) + )) + .withPatterns(CharacterPatternTypes.EYEBROW, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.UNI), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.LONG), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.THICK) + )) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + TexturePreset.EMPTY_VALUE_KEY, + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SHORT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BALD_SIDES), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.TOP_BALDING), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SIDE_BALDING), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BOWL) + )) + .withPatterns(CharacterPatternTypes.BEARD, List.of( + TexturePreset.EMPTY_VALUE_KEY.withWeight(3), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.SHORT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.SINGLE) + )); + + FEMALE_PRESET = new WeightedTexturePresetHolder() + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.FEMALE) + )) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.SLIM), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.SKIN_TO_BONE) + )) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.LONG), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.UNCUT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SEMI_LONG) + )); + + CHIEF_PRESET = MALE_PRESET.copy() + .clearPatterns(CharacterPatternTypes.BODY) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.MUSCULAR), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.FAT) + )) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.MALE) + )) + .clearMaterials(CharacterMaterialTypes.HAIR) + .withMaterials(CharacterMaterialTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.DIRTY_BROWN_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GREASY_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GRAY_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BROWN_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.DARK_BROWN_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLACK_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.COLD_BLACK_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.WHITE_GOLD) + )) + .clearPatterns(CharacterPatternTypes.HAIR) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + TexturePreset.EMPTY_VALUE_KEY.withWeight(5), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SHORT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BALD_SIDES), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.TOP_BALDING), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SIDE_BALDING) + )) + .withPatterns(CharacterPatternTypes.SCAR, List.of( + TexturePreset.EMPTY_VALUE_KEY.withWeight(2), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Scar.EYE_LEFT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Scar.EYE_RIGHT) + )); + } + // endregion + + // region [DATAS] + static { + THUG = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED,new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(MALE_PRESET)); + put(EntityCategories.FEMALE, new WeightedPool<>(FEMALE_PRESET)); + }}); + + MERCENARY = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED,new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(MALE_PRESET)); + put(EntityCategories.FEMALE, new WeightedPool<>(FEMALE_PRESET)); + }}); + + CHIEF = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED,new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(List.of( + CHIEF_PRESET.copy(), + CHIEF_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.BLIND_LEFT))) + .withPatterns(CharacterPatternTypes.SCAR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Scar.EYE_LEFT))), + CHIEF_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.BLIND_RIGHT))) + .withPatterns(CharacterPatternTypes.SCAR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Scar.EYE_RIGHT))) + ))); + }}); + } + // endregion +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/dale/DaleTexturePresetsPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/dale/DaleTexturePresetsPool.java new file mode 100644 index 0000000000..9fc0c74793 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/dale/DaleTexturePresetsPool.java @@ -0,0 +1,177 @@ +package net.sevenstars.middleearth.registries.content.texturepresets.pools.dale; + +import net.sevenstars.api.dtos.WeightedPool; +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; +import net.sevenstars.middleearth.registries.CharacterMaterialsRegistryME; +import net.sevenstars.middleearth.registries.CharacterPatternsRegistryME; +import net.sevenstars.middleearth.resources.datas.common.CharacterMaterialTypes; +import net.sevenstars.middleearth.resources.datas.common.CharacterPatternTypes; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePreset; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePresetDataPool; +import net.sevenstars.middleearth.resources.datas.common.EntityCategories; +import net.sevenstars.api.dtos.WeightedIdentifier; +import net.sevenstars.middleearth.resources.datas.texture_presets.WeightedTexturePresetHolder; + +import java.util.HashMap; +import java.util.List; + +public class DaleTexturePresetsPool { + + private final static WeightedTexturePresetHolder BASE_PRESET; + private final static WeightedTexturePresetHolder MALE_PRESET; + private final static WeightedTexturePresetHolder FEMALE_PRESET; + private final static WeightedTexturePresetHolder LORD_PRESET; + + public final static TexturePresetDataPool COMMON; + public final static TexturePresetDataPool SOLDIER; + public final static TexturePresetDataPool LORD; + + public static List fetchAll() { + return List.of( + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.DALE_PEASANT, COMMON), + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.DALE_SOLDIER, SOLDIER), + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.DALE_LORD, LORD) + ); + } + + // region [PRESETS] + static { + BASE_PRESET = new WeightedTexturePresetHolder() + .withMaterials(CharacterMaterialTypes.SKIN, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.PALE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.BEIGE) + )) + .withPatterns(CharacterPatternTypes.EAR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.SQUARE), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.NORMAL) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.COMMON) + )) + .withMaterials(CharacterMaterialTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.BLUE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.GREEN), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.DARK_GREEN), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.BLACK), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.NAVY), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.BROWN) + )) + .withMaterials(CharacterMaterialTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GRAY_COPPER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GREASY_COPPER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BROWN_COPPER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.DARK_BROWN_COPPER) + )) + .withPatterns(CharacterPatternTypes.EYEBROW, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.BASIC) + )); + + MALE_PRESET = new WeightedTexturePresetHolder() + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.MALE) + )) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.MUSCULAR), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.FAT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.SKIN_TO_BONE) + )) + .withPatterns(CharacterPatternTypes.EYEBROW, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.UNI), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.LONG), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.THICK) + )) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + TexturePreset.EMPTY_VALUE_KEY, + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SHORT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BALD_SIDES), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.TOP_BALDING), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SIDE_BALDING), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BOWL) + )) + .withPatterns(CharacterPatternTypes.BEARD, List.of( + TexturePreset.EMPTY_VALUE_KEY.withWeight(3), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.SHORT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.SINGLE) + )); + + FEMALE_PRESET = new WeightedTexturePresetHolder() + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.FEMALE) + )) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.SLIM), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.SKIN_TO_BONE) + )) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.LONG), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.UNCUT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SEMI_LONG) + )); + + LORD_PRESET = MALE_PRESET.copy() + .clearPatterns(CharacterPatternTypes.BODY) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.MUSCULAR), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.FAT) + )) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.MALE) + )) + .clearMaterials(CharacterMaterialTypes.HAIR) + .withMaterials(CharacterMaterialTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BROWN_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.DARK_BROWN_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLACK_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.COLD_BLACK_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GRAY_GOLD) + )) + .clearPatterns(CharacterPatternTypes.HAIR) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + TexturePreset.EMPTY_VALUE_KEY.withWeight(4), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SHORT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BALD_SIDES), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.TOP_BALDING), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SIDE_BALDING) + )) + .withPatterns(CharacterPatternTypes.SCAR, List.of( + TexturePreset.EMPTY_VALUE_KEY.withWeight(2), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Scar.EYE_LEFT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Scar.EYE_RIGHT) + )); + } + // endregion + + // region [DATAS] + static { + COMMON = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(MALE_PRESET)); + put(EntityCategories.FEMALE, new WeightedPool<>(FEMALE_PRESET)); + }}); + + SOLDIER = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(MALE_PRESET)); + }}); + + LORD = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(List.of( + LORD_PRESET.copy(), + LORD_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.BLIND_LEFT))) + .withPatterns(CharacterPatternTypes.SCAR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Scar.EYE_LEFT))), + LORD_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.BLIND_RIGHT))) + .withPatterns(CharacterPatternTypes.SCAR, List.of( + WeightedIdentifier.fromKey((CharacterPatternsRegistryME.Skins.Scar.EYE_RIGHT)))) + ))); + }}); + } + // endregion +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/gondor/GondorTexturePresetsPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/gondor/GondorTexturePresetsPool.java new file mode 100644 index 0000000000..7ba36b5ea3 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/gondor/GondorTexturePresetsPool.java @@ -0,0 +1,181 @@ +package net.sevenstars.middleearth.registries.content.texturepresets.pools.gondor; + +import net.sevenstars.api.dtos.WeightedPool; +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; +import net.sevenstars.middleearth.registries.CharacterMaterialsRegistryME; +import net.sevenstars.middleearth.registries.CharacterPatternsRegistryME; +import net.sevenstars.middleearth.resources.datas.common.CharacterMaterialTypes; +import net.sevenstars.middleearth.resources.datas.common.CharacterPatternTypes; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePreset; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePresetDataPool; +import net.sevenstars.middleearth.resources.datas.common.EntityCategories; +import net.sevenstars.api.dtos.WeightedIdentifier; +import net.sevenstars.middleearth.resources.datas.texture_presets.WeightedTexturePresetHolder; + +import java.util.HashMap; +import java.util.List; + +public class GondorTexturePresetsPool { + private final static WeightedTexturePresetHolder BASE_PRESET; + private final static WeightedTexturePresetHolder MALE_PRESET; + private final static WeightedTexturePresetHolder FEMALE_PRESET; + private final static WeightedTexturePresetHolder LORD_PRESET; + + public final static TexturePresetDataPool COMMON; + public final static TexturePresetDataPool SOLDIER; + public final static TexturePresetDataPool LORD; + + public static List fetchAll() { + return List.of( + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.GONDOR_PEASANT, COMMON), + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.GONDOR_SOLDIER, SOLDIER), + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.GONDOR_LORD, LORD) + ); + } + // region [PRESETS] + static { + BASE_PRESET = new WeightedTexturePresetHolder() + .withMaterials(CharacterMaterialTypes.SKIN, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.PALE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.BEIGE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.TAN), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.TAN_DESATURATED) + )) + .withPatterns(CharacterPatternTypes.EAR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.SQUARE), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.NORMAL) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.COMMON) + )) + .withMaterials(CharacterMaterialTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.BLUE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.GREEN), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.DARK_GREEN), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.BLACK), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.NAVY), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.BROWN) + )) + .withMaterials(CharacterMaterialTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GREASY_SILVER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GRAY_BEADS), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLACK_SILVER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.COLD_BLACK_SILVER) + )) + .withPatterns(CharacterPatternTypes.EYEBROW, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.BASIC) + )); + + MALE_PRESET = new WeightedTexturePresetHolder() + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.MALE) + )) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.MUSCULAR), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.FAT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.SKIN_TO_BONE) + )) + .withPatterns(CharacterPatternTypes.EYEBROW, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.UNI), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.LONG), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.THICK) + )) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + TexturePreset.EMPTY_VALUE_KEY, + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SHORT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SHARP), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BOWL), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BALD_SIDES), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.TOP_BALDING), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SIDE_BALDING) + )) + .withPatterns(CharacterPatternTypes.BEARD, List.of( + TexturePreset.EMPTY_VALUE_KEY.withWeight(3), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.SHORT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.SINGLE) + )); + + FEMALE_PRESET = new WeightedTexturePresetHolder() + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.FEMALE) + )) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.SLIM), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.SKIN_TO_BONE) + )) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.LONG), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.UNCUT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SEMI_LONG) + )); + + LORD_PRESET = MALE_PRESET.copy() + .clearPatterns(CharacterPatternTypes.BODY) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.MUSCULAR), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.FAT) + )) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.MALE) + )) + .clearMaterials(CharacterMaterialTypes.HAIR) + .withMaterials(CharacterMaterialTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.WHITE_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLACK_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.COLD_BLACK_GOLD) + )) + .clearPatterns(CharacterPatternTypes.HAIR) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + TexturePreset.EMPTY_VALUE_KEY.withWeight(5), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SHORT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BALD_SIDES), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.TOP_BALDING), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SIDE_BALDING) + )) + .withPatterns(CharacterPatternTypes.SCAR, List.of( + TexturePreset.EMPTY_VALUE_KEY.withWeight(2), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Scar.EYE_LEFT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Scar.EYE_RIGHT) + )); + } + // endregion + + + // region [DATAS] + static { + COMMON = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(MALE_PRESET)); + put(EntityCategories.FEMALE, new WeightedPool<>(FEMALE_PRESET)); + }}); + + SOLDIER = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(MALE_PRESET)); + }}); + + LORD = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(List.of( + LORD_PRESET.copy(), + LORD_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.BLIND_LEFT) + )) + .withPatterns(CharacterPatternTypes.SCAR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Scar.EYE_LEFT) + )), + LORD_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.BLIND_RIGHT) + )) + .withPatterns(CharacterPatternTypes.SCAR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Scar.EYE_RIGHT) + )) + ))); + }}); + } + // endregion +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/hobgoblintribes/GundabadTexturePresetsPool/GundabadTexturePresetsPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/hobgoblintribes/GundabadTexturePresetsPool/GundabadTexturePresetsPool.java new file mode 100644 index 0000000000..e5224b41c0 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/hobgoblintribes/GundabadTexturePresetsPool/GundabadTexturePresetsPool.java @@ -0,0 +1,141 @@ +package net.sevenstars.middleearth.registries.content.texturepresets.pools.hobgoblintribes.GundabadTexturePresetsPool; + +import net.sevenstars.api.dtos.WeightedPool; +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; +import net.sevenstars.middleearth.registries.CharacterMaterialsRegistryME; +import net.sevenstars.middleearth.registries.CharacterPatternsRegistryME; +import net.sevenstars.middleearth.resources.datas.common.CharacterMaterialTypes; +import net.sevenstars.middleearth.resources.datas.common.CharacterPatternTypes; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePreset; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePresetDataPool; +import net.sevenstars.middleearth.resources.datas.common.EntityCategories; +import net.sevenstars.api.dtos.WeightedIdentifier; +import net.sevenstars.middleearth.resources.datas.texture_presets.WeightedTexturePresetHolder; + +import java.util.HashMap; +import java.util.List; + +public class GundabadTexturePresetsPool { + private final static WeightedTexturePresetHolder BASE_PRESET; + private final static WeightedTexturePresetHolder GOBLIN_PRESET; + private final static WeightedTexturePresetHolder HOBGOBLIN_PRESET; + + public final static TexturePresetDataPool GOBLIN; + public final static TexturePresetDataPool HOBGOBLIN; + + + public static List fetchAll() { + return List.of( + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.GUNDABAD_GOBLIN, GOBLIN), + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.GUNDABAD_HOBGOBLIN, HOBGOBLIN) + ); + } + + //region [PRESETS] + static { + BASE_PRESET = new WeightedTexturePresetHolder() + .withMaterials(CharacterMaterialTypes.SKIN, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.PALE_WHITE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.LIGHT_GREY) + )) + .withPatterns(CharacterPatternTypes.EAR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.LARGE_POINTY), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.WIDE_POINTY), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.SQUARE_POINTY) + )) + .withMaterials(CharacterMaterialTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.ICE) + )) + .withEmissiveEyes(true) + .withMaterials(CharacterMaterialTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GINGER_BEADS), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GRAY_BEADS), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GRAY_COPPER) + )); + + GOBLIN_PRESET = new WeightedTexturePresetHolder() + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.SLIM) + )) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + TexturePreset.EMPTY_VALUE_KEY.withWeight(3), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.PONYTAIL_SHORT_ORNAMENTED), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BALD_DREADLOCKS_ORNAMENTED), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BALD_SMALL_DREADLOCKS) + )); + + HOBGOBLIN_PRESET = GOBLIN_PRESET.copy() + .clearPatterns(CharacterPatternTypes.BODY) + .clearPatterns(CharacterPatternTypes.HEAD) + .clearPatterns(CharacterPatternTypes.EYE) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.MUSCULAR), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.FAT) + )); + } + // endregion + + // region [DATAS] + static { + GOBLIN = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(List.of( + GOBLIN_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .clearPatterns(CharacterPatternTypes.HEAD) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_WISE), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_THICK_BROW) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.SMALL_WIDE), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.COMMON) + )), + GOBLIN_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .clearPatterns(CharacterPatternTypes.HEAD) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.SMALL) + )), + GOBLIN_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .clearPatterns(CharacterPatternTypes.HEAD) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_VERY_WIDE) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.SMALL_WIDE) + )) + ))); + }}); + + HOBGOBLIN = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(List.of( + HOBGOBLIN_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .clearPatterns(CharacterPatternTypes.HEAD) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.URUK_TALL_DUMB) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.SMALL_VERY_HIGH_WIDE) + )), + HOBGOBLIN_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .clearPatterns(CharacterPatternTypes.HEAD) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.URUK_DUMB) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.SMALL_HIGH_WIDE), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.COMMON_HIGH) + )) + ))); + }}); + } + // endregion +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/hobgoblintribes/HobgoblinTribesTexturePresetsPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/hobgoblintribes/HobgoblinTribesTexturePresetsPool.java new file mode 100644 index 0000000000..6d98543713 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/hobgoblintribes/HobgoblinTribesTexturePresetsPool.java @@ -0,0 +1,23 @@ +package net.sevenstars.middleearth.registries.content.texturepresets.pools.hobgoblintribes; + +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; + +import java.util.List; + +public class HobgoblinTribesTexturePresetsPool { + public static List fetchAll() { + return List.of( + // N/A + ); + } + + //region [PRESETS] + static { + } + // endregion + + // region [DATAS] + static { + } + // endregion +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/isengard/IsengardTexturePresetsPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/isengard/IsengardTexturePresetsPool.java new file mode 100644 index 0000000000..0f28baf36a --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/isengard/IsengardTexturePresetsPool.java @@ -0,0 +1,221 @@ +package net.sevenstars.middleearth.registries.content.texturepresets.pools.isengard; + +import net.sevenstars.api.dtos.WeightedPool; +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; +import net.sevenstars.middleearth.registries.CharacterClothesRegistryME; +import net.sevenstars.middleearth.registries.CharacterMaterialsRegistryME; +import net.sevenstars.middleearth.registries.CharacterPatternsRegistryME; +import net.sevenstars.middleearth.resources.datas.common.CharacterMaterialTypes; +import net.sevenstars.middleearth.resources.datas.common.CharacterPatternTypes; +import net.sevenstars.middleearth.resources.datas.texture_presets.WeightedClothingPresetHolder; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePreset; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePresetDataPool; +import net.sevenstars.middleearth.resources.datas.common.EntityCategories; +import net.sevenstars.api.dtos.WeightedIdentifier; +import net.sevenstars.middleearth.resources.datas.texture_presets.WeightedTexturePresetHolder; + +import java.util.HashMap; +import java.util.List; + +public class IsengardTexturePresetsPool { + private final static WeightedTexturePresetHolder BASE_PRESET; + private final static WeightedTexturePresetHolder BLACK_NUMENOREAN_PRESET; + private final static WeightedTexturePresetHolder ORC_PRESET; + private final static WeightedTexturePresetHolder BLACK_URUK_PRESET; + + public final static TexturePresetDataPool HUMAN; + public final static TexturePresetDataPool ORC; + public final static TexturePresetDataPool URUK_HAI; + + + public static List fetchAll() { + return List.of( + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.ISENGARD_ORC, ORC), + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.ISENGARD_URUK_HAI, URUK_HAI), + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.ISENGARD_HUMAN, HUMAN) + ); + } + + //region [PRESETS] + static { + BASE_PRESET = new WeightedTexturePresetHolder() + .withMaterials(CharacterMaterialTypes.SKIN, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.RUST), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.RED), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.WINE) + )) + .withPatterns(CharacterPatternTypes.EAR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.LARGE_POINTY), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.WIDE_POINTY), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.SQUARE_POINTY) + )) + .withMaterials(CharacterMaterialTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.YELLOW) + )) + .withEmissiveEyes(true) + .withMaterials(CharacterMaterialTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.DIRTY_BROWN_ALMANDINE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GREASY_ALMANDINE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLACK_ALMANDINE) + )) + .withClothes(List.of( + new WeightedClothingPresetHolder[]{ + new WeightedClothingPresetHolder(List.of( + WeightedIdentifier.fromIdentifier(CharacterClothesRegistryME.Base.THONG_BROWN) + )) + } + )); + + BLACK_NUMENOREAN_PRESET = new WeightedTexturePresetHolder() + .withMaterials(CharacterMaterialTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.BROWN) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.COMMON) + )) + .withMaterials(CharacterMaterialTypes.SKIN, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.TAN), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.TAN_DESATURATED) + )) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.MUSCULAR), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.SLIM) + )) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.MALE) + )) + .withPatterns(CharacterPatternTypes.EAR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.POINTY) + )) + .withMaterials(CharacterMaterialTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GREASY_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLACK_GOLD) + )) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + TexturePreset.EMPTY_VALUE_KEY.withWeight(2), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SHARP), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BOWL), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.LONG), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SEMI_LONG) + )) + .withPatterns(CharacterPatternTypes.EYEBROW, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.BASIC), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.SHORT) + )) + .withPatterns(CharacterPatternTypes.BEARD, List.of( + TexturePreset.EMPTY_VALUE_KEY.withWeight(2), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.SHORT) + )) + .withClothes(List.of( + new WeightedClothingPresetHolder[]{ + new WeightedClothingPresetHolder(List.of( + WeightedIdentifier.fromIdentifier(CharacterClothesRegistryME.Base.PANTS_BROWN), + WeightedIdentifier.fromIdentifier(CharacterClothesRegistryME.Base.PANTS_DARK_BROWN) + )) + } + )); + + ORC_PRESET = new WeightedTexturePresetHolder() + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.SLIM) + )) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + TexturePreset.EMPTY_VALUE_KEY.withWeight(2), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.PONYTAIL_SHORT_ORNAMENTED), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BALD_DREADLOCKS_ORNAMENTED), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BALD_SMALL_DREADLOCKS) + )) + .withClothes(List.of( + new WeightedClothingPresetHolder[]{ + new WeightedClothingPresetHolder(List.of( + WeightedIdentifier.fromIdentifier(CharacterClothesRegistryME.Base.THONG_BROWN), + WeightedIdentifier.fromIdentifier(CharacterClothesRegistryME.Base.PANTS_BROWN) + )) + } + )); + + BLACK_URUK_PRESET = ORC_PRESET.copy() + .clearPatterns(CharacterPatternTypes.BODY) + .clearPatterns(CharacterPatternTypes.HEAD) + .clearPatterns(CharacterPatternTypes.EYE) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.MUSCULAR), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.FAT) + )) + .withMaterials(CharacterMaterialTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.DIRTY_BROWN_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GREASY_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLACK_GOLD) + )); + } + // endregion + + // region [DATAS] + static { + HUMAN = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.MALE, new WeightedPool<>(BLACK_NUMENOREAN_PRESET)); + }}); + + ORC = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(List.of( + ORC_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .clearPatterns(CharacterPatternTypes.HEAD) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_WISE), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_THICK_BROW) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.SMALL_WIDE), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.COMMON) + )), + ORC_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .clearPatterns(CharacterPatternTypes.HEAD) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.SMALL) + )), + ORC_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .clearPatterns(CharacterPatternTypes.HEAD) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_VERY_WIDE) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.SMALL_WIDE) + )) + ))); + }}); + + URUK_HAI = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(List.of( + BLACK_URUK_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .clearPatterns(CharacterPatternTypes.HEAD) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.URUK_TALL_DUMB) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.SMALL_VERY_HIGH_WIDE) + )), + + BLACK_URUK_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .clearPatterns(CharacterPatternTypes.HEAD) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.URUK_DUMB) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.SMALL_HIGH_WIDE), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.COMMON_HIGH) + )) + ))); + }}); + } + // endregion +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/longbeards/LongbeardsTexturePresetsPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/longbeards/LongbeardsTexturePresetsPool.java new file mode 100644 index 0000000000..5d4894607c --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/longbeards/LongbeardsTexturePresetsPool.java @@ -0,0 +1,23 @@ +package net.sevenstars.middleearth.registries.content.texturepresets.pools.longbeards; + +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; + +import java.util.List; + +public class LongbeardsTexturePresetsPool { + public static List fetchAll() { + return List.of( + // N/A + ); + } + + //region [PRESETS] + static { + } + // endregion + + // region [DATAS] + static { + } + // endregion +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/longbeards/erebor/EreborTexturePresetsPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/longbeards/erebor/EreborTexturePresetsPool.java new file mode 100644 index 0000000000..8e057b421f --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/longbeards/erebor/EreborTexturePresetsPool.java @@ -0,0 +1,196 @@ +package net.sevenstars.middleearth.registries.content.texturepresets.pools.longbeards.erebor; + +import net.sevenstars.api.dtos.WeightedPool; +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; +import net.sevenstars.middleearth.registries.CharacterClothesRegistryME; +import net.sevenstars.middleearth.registries.CharacterMaterialsRegistryME; +import net.sevenstars.middleearth.registries.CharacterPatternsRegistryME; +import net.sevenstars.middleearth.resources.datas.common.CharacterMaterialTypes; +import net.sevenstars.middleearth.resources.datas.common.CharacterPatternTypes; +import net.sevenstars.middleearth.resources.datas.texture_presets.WeightedClothingPresetHolder; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePreset; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePresetDataPool; +import net.sevenstars.middleearth.resources.datas.common.EntityCategories; +import net.sevenstars.api.dtos.WeightedIdentifier; +import net.sevenstars.middleearth.resources.datas.texture_presets.WeightedTexturePresetHolder; + +import java.util.HashMap; +import java.util.List; +import java.util.stream.Stream; + +public class EreborTexturePresetsPool { + private final static WeightedTexturePresetHolder BASE_PRESET; + private final static WeightedTexturePresetHolder MALE_PRESET; + private final static WeightedTexturePresetHolder FEMALE_PRESET; + private final static WeightedTexturePresetHolder MIGHTY_PRESET; + + public final static TexturePresetDataPool COMMON; + public final static TexturePresetDataPool SOLDIER; + public final static TexturePresetDataPool MIGHTY; + + public static List fetchAll() { + return List.of( + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.LONGBEARDS_EREBOR_DWARF, COMMON), + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.LONGBEARDS_EREBOR_DWARF_SOLDIER, SOLDIER), + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.LONGBEARDS_EREBOR_MIGHTY_DWARF, MIGHTY) + ); + } + + //region [PRESETS] + static { + BASE_PRESET = new WeightedTexturePresetHolder() + .withMaterials(CharacterMaterialTypes.SKIN, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.PALE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.BEIGE) + )) + .withPatterns(CharacterPatternTypes.NOSE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Nose.CUBE) + )) + .withPatterns(CharacterPatternTypes.EAR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.SQUARE), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.NORMAL) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.COMMON) + )) + .withMaterials(CharacterMaterialTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.BLUE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.GREEN), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.DARK_GREEN), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.BLACK), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.NAVY), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.BROWN) + )) + .withMaterials(CharacterMaterialTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.COLD_BLACK_COPPER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLACK_COPPER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.DARK_BROWN_COPPER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BROWN_COPPER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BROWN_BEADS), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GRAY_BEADS), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GRAY_COPPER) + )) + .withPatterns(CharacterPatternTypes.EYEBROW, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.BASIC), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.SHORT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.THICK), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.LONG) + )) + .withPatterns(CharacterPatternTypes.HAIR, Stream.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.PONYTAIL_SHORT_ORNAMENTED), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SHARP) + ).toList() + ).withPatterns(CharacterPatternTypes.BEARD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.UNCLEAN_ORNAMENTED), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.DUAL_LARGE_ORNAMENTED), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.DUAL_ORNAMENTED), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.LONG_SINGLE_ORNAMENTED) + )); + + MALE_PRESET = new WeightedTexturePresetHolder() + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.MALE) + )) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.MUSCULAR), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.FAT) + )) + .withPatterns(CharacterPatternTypes.EYEBROW, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.UNI) + )) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + TexturePreset.EMPTY_VALUE_KEY.withWeight(2), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SHORT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BALD_SIDES), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.TOP_BALDING), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SIDE_BALDING) + )) + .withPatterns(CharacterPatternTypes.BEARD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.BROAD), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.LARGE), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.VERY_LARGE_MUSTACHE), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.VERY_LONG) + )); + + FEMALE_PRESET = new WeightedTexturePresetHolder() + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.FEMALE) + )) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.FEMALE), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.SLIM), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.FAT) + )); + + MIGHTY_PRESET = MALE_PRESET.copy() + .clearMaterials(CharacterMaterialTypes.HAIR) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.MUSCULAR), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.FAT) + )) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.MALE) + )) + .withMaterials(CharacterMaterialTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.COLD_BLACK_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLACK_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.DARK_BROWN_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BROWN_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GRAY_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.WHITE_GOLD) + )) + .clearPatterns(CharacterPatternTypes.BEARD) + .withPatterns(CharacterPatternTypes.BEARD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.CLEAN), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.VERY_LONG), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.VERY_BROAD), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.DUAL_LARGE_ORNAMENTED), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.VERY_LARGE_MUSTACHE), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.FANCY_MUSTACHE_ORNAMENTED), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.LONG_BRAIDS_ORNAMENTED), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.CHUNKY_BRAIDS) + )) + .withClothes(List.of( + new WeightedClothingPresetHolder( + List.of( + WeightedIdentifier.fromIdentifier(CharacterClothesRegistryME.Base.PANTS_BROWN), + WeightedIdentifier.fromIdentifier(CharacterClothesRegistryME.Base.PANTS_DARK_BROWN) + ), + List.of( + WeightedIdentifier.fromIdentifier(CharacterClothesRegistryME.Over.SHIRT_BEIGE), + WeightedIdentifier.fromIdentifier(CharacterClothesRegistryME.Over.SHIRT_BURGUNDY) + ), + 3 + ), + new WeightedClothingPresetHolder( + List.of( + WeightedIdentifier.fromIdentifier(CharacterClothesRegistryME.Base.PANTS_BROWN), + WeightedIdentifier.fromIdentifier(CharacterClothesRegistryME.Base.PANTS_DARK_BROWN) + ) + ) + )); + } + // endregion + + // region [DATAS] + static { + COMMON = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(MALE_PRESET)); + put(EntityCategories.FEMALE, new WeightedPool<>(FEMALE_PRESET)); + }}); + + SOLDIER = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(MALE_PRESET)); + }}); + + MIGHTY = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>( + BASE_PRESET.copy().clearMaterials(CharacterMaterialTypes.HAIR) + )); + put(EntityCategories.MALE, new WeightedPool<>(MIGHTY_PRESET)); + }}); + } + // endregion +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/lothlorien/LothlorienTexturePresetsPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/lothlorien/LothlorienTexturePresetsPool.java new file mode 100644 index 0000000000..9e2ad39de4 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/lothlorien/LothlorienTexturePresetsPool.java @@ -0,0 +1,140 @@ +package net.sevenstars.middleearth.registries.content.texturepresets.pools.lothlorien; + +import net.sevenstars.api.dtos.WeightedPool; +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; +import net.sevenstars.middleearth.registries.CharacterMaterialsRegistryME; +import net.sevenstars.middleearth.registries.CharacterPatternsRegistryME; +import net.sevenstars.middleearth.resources.datas.common.CharacterMaterialTypes; +import net.sevenstars.middleearth.resources.datas.common.CharacterPatternTypes; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePresetDataPool; +import net.sevenstars.middleearth.resources.datas.common.EntityCategories; +import net.sevenstars.api.dtos.WeightedIdentifier; +import net.sevenstars.middleearth.resources.datas.texture_presets.WeightedTexturePresetHolder; + +import java.util.HashMap; +import java.util.List; + +public class LothlorienTexturePresetsPool { + private final static WeightedTexturePresetHolder BASE_PRESET; + private final static WeightedTexturePresetHolder MALE_PRESET; + private final static WeightedTexturePresetHolder FEMALE_PRESET; + private final static WeightedTexturePresetHolder LORD_PRESET; + + public final static TexturePresetDataPool COMMON; + public final static TexturePresetDataPool LORD; + + public static List fetchAll() { + return List.of( + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.LOTHLORIEN_ELF, COMMON), + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.LOTHLORIEN_LORD, LORD) + ); + } + + //region [PRESETS] + static { + BASE_PRESET = new WeightedTexturePresetHolder() + .withMaterials(CharacterMaterialTypes.SKIN, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.PALE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.BEIGE) + )) + .withPatterns(CharacterPatternTypes.EAR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.POINTY), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.SMALL_POINTY) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.COMMON) + )) + .withMaterials(CharacterMaterialTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.DEEP_BLUE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.BLACK) + )) + .withMaterials(CharacterMaterialTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLONDE_SILVER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GRAY_BEADS), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.STRAW_SILVER) + )) + .withPatterns(CharacterPatternTypes.EYEBROW, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.BASIC) + )); + + MALE_PRESET = new WeightedTexturePresetHolder() + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.MALE) + )) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.MUSCULAR), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.SLIM) + )) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.UNCUT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SEMI_LONG) + )); + + FEMALE_PRESET = new WeightedTexturePresetHolder() + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.FEMALE) + )) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.SLIM), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.FEMALE) + )) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.LONG), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.FLAT_LONG), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.VERY_LONG) + )); + + LORD_PRESET = MALE_PRESET.copy() + .clearPatterns(CharacterPatternTypes.BODY) + .clearMaterials(CharacterMaterialTypes.HAIR) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.MALE) + )) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.MUSCULAR) + )) + .withMaterials(CharacterMaterialTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLONDE_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GRAY_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.STRAW_GOLD) + )); + } + // endregion + + // region [DATAS] + static { + COMMON = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(MALE_PRESET)); + put(EntityCategories.FEMALE, new WeightedPool<>(FEMALE_PRESET)); + }}); + + LORD = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>( + BASE_PRESET + .copy() + .clearMaterials(CharacterMaterialTypes.HAIR) + )); + put(EntityCategories.MALE, new WeightedPool<>(List.of( + LORD_PRESET.copy(), + LORD_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.BLIND_LEFT) + )) + .withPatterns(CharacterPatternTypes.SCAR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Scar.EYE_LEFT) + )), + LORD_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.BLIND_RIGHT) + )) + .withPatterns(CharacterPatternTypes.SCAR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Scar.EYE_RIGHT) + )) + ))); + }}); + } + // endregion +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/mordor/MordorTexturePresetsPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/mordor/MordorTexturePresetsPool.java new file mode 100644 index 0000000000..262d177c0d --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/mordor/MordorTexturePresetsPool.java @@ -0,0 +1,197 @@ +package net.sevenstars.middleearth.registries.content.texturepresets.pools.mordor; + +import net.sevenstars.api.dtos.WeightedPool; +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; +import net.sevenstars.middleearth.registries.CharacterMaterialsRegistryME; +import net.sevenstars.middleearth.registries.CharacterPatternsRegistryME; +import net.sevenstars.middleearth.resources.datas.common.CharacterMaterialTypes; +import net.sevenstars.middleearth.resources.datas.common.CharacterPatternTypes; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePreset; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePresetDataPool; +import net.sevenstars.middleearth.resources.datas.common.EntityCategories; +import net.sevenstars.api.dtos.WeightedIdentifier; +import net.sevenstars.middleearth.resources.datas.texture_presets.WeightedTexturePresetHolder; + +import java.util.HashMap; +import java.util.List; + +public class MordorTexturePresetsPool { + private final static WeightedTexturePresetHolder BASE_PRESET; + private final static WeightedTexturePresetHolder BLACK_NUMENOREAN_PRESET; + private final static WeightedTexturePresetHolder ORC_PRESET; + private final static WeightedTexturePresetHolder BLACK_URUK_PRESET; + + public final static TexturePresetDataPool BLACK_NUMENOREAN; + public final static TexturePresetDataPool ORC; + public final static TexturePresetDataPool BLACK_URUK; + + + public static List fetchAll() { + return List.of( + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.MORDOR_BLACK_NUMENOREAN, BLACK_NUMENOREAN), + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.MORDOR_ORC, ORC), + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.MORDOR_BLACK_URUK, BLACK_URUK) + ); + } + + //region [PRESETS] + static { + BASE_PRESET = new WeightedTexturePresetHolder() + .withMaterials(CharacterMaterialTypes.SKIN, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.BROWN), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.GREY), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.SLIGHT_BROWN) + )) + .withPatterns(CharacterPatternTypes.EAR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.LARGE_POINTY), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.WIDE_POINTY), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.SQUARE_POINTY) + )) + .withMaterials(CharacterMaterialTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.YELLOW), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.RED) + )) + .withEmissiveEyes(true) + .withMaterials(CharacterMaterialTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.DIRTY_BROWN_ALMANDINE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GREASY_ALMANDINE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLACK_ALMANDINE) + )); + + BLACK_NUMENOREAN_PRESET = new WeightedTexturePresetHolder() + .withMaterials(CharacterMaterialTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.BROWN) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.COMMON) + )) + .withMaterials(CharacterMaterialTypes.SKIN, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.TAN), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.TAN_DESATURATED) + )) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.MUSCULAR), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.SLIM) + )) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.MALE) + )) + .withPatterns(CharacterPatternTypes.EAR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.POINTY) + )) + .withMaterials(CharacterMaterialTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GREASY_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLACK_GOLD) + )) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + TexturePreset.EMPTY_VALUE_KEY.withWeight(2), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SHARP), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BOWL), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.LONG), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SEMI_LONG) + )) + .withPatterns(CharacterPatternTypes.EYEBROW, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.BASIC), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.SHORT) + )) + .withPatterns(CharacterPatternTypes.BEARD, List.of( + TexturePreset.EMPTY_VALUE_KEY.withWeight(2), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.SHORT) + )); + + + ORC_PRESET = new WeightedTexturePresetHolder() + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.SLIM) + )) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + TexturePreset.EMPTY_VALUE_KEY.withWeight(2), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.PONYTAIL_SHORT_ORNAMENTED), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BALD_DREADLOCKS_ORNAMENTED), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BALD_SMALL_DREADLOCKS) + )); + + BLACK_URUK_PRESET = ORC_PRESET.copy() + .clearPatterns(CharacterPatternTypes.BODY) + .clearPatterns(CharacterPatternTypes.HEAD) + .clearPatterns(CharacterPatternTypes.EYE) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.MUSCULAR), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.FAT) + )) + .withMaterials(CharacterMaterialTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.DIRTY_BROWN_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GREASY_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLACK_GOLD) + )); + } + // endregion + + // region [DATAS] + static { + BLACK_NUMENOREAN = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.MALE, new WeightedPool<>(BLACK_NUMENOREAN_PRESET)); + }}); + + ORC = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(List.of( + ORC_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .clearPatterns(CharacterPatternTypes.HEAD) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_WISE), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_THICK_BROW) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.SMALL_WIDE), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.COMMON) + )), + ORC_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .clearPatterns(CharacterPatternTypes.HEAD) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.SMALL) + )), + ORC_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .clearPatterns(CharacterPatternTypes.HEAD) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_VERY_WIDE) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.SMALL_WIDE) + )) + ))); + }}); + + BLACK_URUK = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(List.of( + BLACK_URUK_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .clearPatterns(CharacterPatternTypes.HEAD) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.URUK_TALL_DUMB) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.SMALL_VERY_HIGH_WIDE) + )), + BLACK_URUK_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .clearPatterns(CharacterPatternTypes.HEAD) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.URUK_DUMB) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.SMALL_HIGH_WIDE), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.COMMON_HIGH) + )) + ))); + }}); + } + // endregion +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/rohan/RohanTexturePresetsPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/rohan/RohanTexturePresetsPool.java new file mode 100644 index 0000000000..97192e1aed --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/rohan/RohanTexturePresetsPool.java @@ -0,0 +1,183 @@ +package net.sevenstars.middleearth.registries.content.texturepresets.pools.rohan; + +import net.sevenstars.api.dtos.WeightedPool; +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; +import net.sevenstars.middleearth.registries.CharacterMaterialsRegistryME; +import net.sevenstars.middleearth.registries.CharacterPatternsRegistryME; +import net.sevenstars.middleearth.resources.datas.common.CharacterMaterialTypes; +import net.sevenstars.middleearth.resources.datas.common.CharacterPatternTypes; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePreset; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePresetDataPool; +import net.sevenstars.middleearth.resources.datas.common.EntityCategories; +import net.sevenstars.api.dtos.WeightedIdentifier; +import net.sevenstars.middleearth.resources.datas.texture_presets.WeightedTexturePresetHolder; + +import java.util.HashMap; +import java.util.List; + +public class RohanTexturePresetsPool { + private final static WeightedTexturePresetHolder BASE_PRESET; + private final static WeightedTexturePresetHolder MALE_PRESET; + private final static WeightedTexturePresetHolder FEMALE_PRESET; + private final static WeightedTexturePresetHolder LORD_PRESET; + + public final static TexturePresetDataPool COMMON; + public final static TexturePresetDataPool SOLDIER; + public final static TexturePresetDataPool LORD; + + public static List fetchAll() { + return List.of( + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.ROHAN_PEASANT, COMMON), + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.ROHAN_SOLDIER, SOLDIER), + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.ROHAN_LORD, LORD) + ); + } + // region [PRESETS] + static { + BASE_PRESET = new WeightedTexturePresetHolder() + .withMaterials(CharacterMaterialTypes.SKIN, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.PALE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.BEIGE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.TAN) + )) + .withPatterns(CharacterPatternTypes.EAR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.SQUARE), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.NORMAL) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.COMMON) + )) + .withMaterials(CharacterMaterialTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.BLUE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.NAVY), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.GREEN), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.DARK_GREEN), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.BLACK), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.BROWN) + )) + .withMaterials(CharacterMaterialTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.STRAW_ALMANDINE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.STRAW_COPPER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLONDE_ALMANDINE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLONDE_COPPER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.DIRTY_BLONDE_ALMANDINE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.DIRTY_BLONDE_COPPER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GINGER_ALMANDINE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GINGER_COPPER) + )) + .withPatterns(CharacterPatternTypes.EYEBROW, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.BASIC) + )); + + MALE_PRESET = new WeightedTexturePresetHolder() + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.MALE) + )) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.MUSCULAR), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.FAT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.SKIN_TO_BONE) + )) + .withPatterns(CharacterPatternTypes.EYEBROW, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.UNI), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.LONG), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.THICK) + )) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SHORT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.LONG), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.UNCUT) + )) + .withPatterns(CharacterPatternTypes.BEARD, List.of( + TexturePreset.EMPTY_VALUE_KEY.withWeight(2), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.SHORT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Beard.SINGLE) + )); + + FEMALE_PRESET = new WeightedTexturePresetHolder() + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.FEMALE) + )) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.SLIM), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.SKIN_TO_BONE) + )) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.LONG), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.UNCUT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SEMI_LONG) + )); + + LORD_PRESET = MALE_PRESET.copy() + .clearPatterns(CharacterPatternTypes.BODY) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.MUSCULAR), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.FAT) + )) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.MALE) + )) + .clearMaterials(CharacterMaterialTypes.HAIR) + .withMaterials(CharacterMaterialTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.STRAW_SILVER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.STRAW_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLONDE_SILVER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLONDE_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.DIRTY_BLONDE_SILVER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.DIRTY_BLONDE_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GINGER_SILVER), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GINGER_GOLD) + )) + .clearPatterns(CharacterPatternTypes.HAIR) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SHORT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.LONG), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.UNCUT) + )) + .withPatterns(CharacterPatternTypes.SCAR, List.of( + TexturePreset.EMPTY_VALUE_KEY.withWeight(2), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Scar.EYE_LEFT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Scar.EYE_RIGHT) + )); + } + // endregion + + + // region [DATAS] + static { + COMMON = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(MALE_PRESET)); + put(EntityCategories.FEMALE, new WeightedPool<>(FEMALE_PRESET)); + }}); + + SOLDIER = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(MALE_PRESET)); + }}); + + LORD = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(List.of( + LORD_PRESET.copy(), + LORD_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.BLIND_LEFT) + )) + .withPatterns(CharacterPatternTypes.SCAR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Scar.EYE_LEFT) + )), + LORD_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.BLIND_RIGHT) + )) + .withPatterns(CharacterPatternTypes.SCAR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Scar.EYE_RIGHT) + )) + ))); + }}); + } + // endregion +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/shire/ShireTexturePresetsPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/shire/ShireTexturePresetsPool.java new file mode 100644 index 0000000000..26e12c41e2 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/shire/ShireTexturePresetsPool.java @@ -0,0 +1,172 @@ +package net.sevenstars.middleearth.registries.content.texturepresets.pools.shire; + +import net.sevenstars.api.dtos.WeightedPool; +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; +import net.sevenstars.middleearth.registries.CharacterClothesRegistryME; +import net.sevenstars.middleearth.registries.CharacterMaterialsRegistryME; +import net.sevenstars.middleearth.registries.CharacterPatternsRegistryME; +import net.sevenstars.middleearth.resources.datas.common.CharacterMaterialTypes; +import net.sevenstars.middleearth.resources.datas.common.CharacterPatternTypes; +import net.sevenstars.middleearth.resources.datas.texture_presets.WeightedClothingPresetHolder; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePresetDataPool; +import net.sevenstars.middleearth.resources.datas.common.EntityCategories; +import net.sevenstars.api.dtos.WeightedIdentifier; +import net.sevenstars.middleearth.resources.datas.texture_presets.WeightedTexturePresetHolder; + +import java.util.HashMap; +import java.util.List; + +public class ShireTexturePresetsPool { + private final static WeightedTexturePresetHolder BASE_PRESET; + private final static WeightedTexturePresetHolder MALE_PRESET; + private final static WeightedTexturePresetHolder FEMALE_PRESET; + private final static WeightedTexturePresetHolder SHIRRIFF_PRESET; + + public final static TexturePresetDataPool COMMON; + public final static TexturePresetDataPool SOLDIER; + public final static TexturePresetDataPool SHIRRIFF; + + public static List fetchAll() { + return List.of( + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.SHIRE_PEASANT, COMMON), + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.SHIRE_MILITIA, SOLDIER), + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.SHIRE_SHIRRIFF, SHIRRIFF) + ); + } + + //region [PRESETS] + static { + BASE_PRESET = new WeightedTexturePresetHolder() + .withMaterials(CharacterMaterialTypes.SKIN, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.PALE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.BEIGE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.TAN) + )) + .withPatterns(CharacterPatternTypes.EAR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.SQUARE), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.NORMAL) + )) + .withPatterns(CharacterPatternTypes.FEET, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Feet.NORMAL) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.COMMON) + )) + .withMaterials(CharacterMaterialTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.BLUE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.NAVY), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.GREEN), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.DARK_GREEN), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.BLACK), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.BROWN) + )) + .withMaterials(CharacterMaterialTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BROWN_BEADS), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.DARK_BROWN_BEADS), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.DIRTY_BROWN_BEADS), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GREASY_BEADS), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.DIRTY_BLONDE_BEADS), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLONDE_BEADS), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GRAY_BEADS) + )) + .withPatterns(CharacterPatternTypes.EYEBROW, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.BASIC) + )); + + MALE_PRESET = new WeightedTexturePresetHolder() + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.MALE) + )) + .withPatterns(CharacterPatternTypes.FEET, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Feet.NORMAL) + )) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.FAT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.SLIM) + )) + .withPatterns(CharacterPatternTypes.EYEBROW, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.UNI), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.LONG), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Eyebrow.THICK) + )) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SHORT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BOWL), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SHARP), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BALD_SIDES) + )) + .withClothes(List.of( + new WeightedClothingPresetHolder( + List.of( + WeightedIdentifier.fromIdentifier(CharacterClothesRegistryME.Base.PANTS_BROWN), + WeightedIdentifier.fromIdentifier(CharacterClothesRegistryME.Base.PANTS_DARK_BROWN) + ), + List.of( + WeightedIdentifier.fromIdentifier(CharacterClothesRegistryME.Over.SHIRT_BEIGE), + WeightedIdentifier.fromIdentifier(CharacterClothesRegistryME.Over.SHIRT_BURGUNDY) + ), + 3 + ), + new WeightedClothingPresetHolder( + List.of( + WeightedIdentifier.fromIdentifier(CharacterClothesRegistryME.Base.PANTS_BROWN), + WeightedIdentifier.fromIdentifier(CharacterClothesRegistryME.Base.PANTS_DARK_BROWN) + ) + ) + )); + + FEMALE_PRESET = new WeightedTexturePresetHolder() + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.FEMALE) + )) + .withPatterns(CharacterPatternTypes.FEET, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Feet.NORMAL) + )) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.FEMALE) + )) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.LONG), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.UNCUT), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.SEMI_LONG) + )) + .withClothes(List.of( + new WeightedClothingPresetHolder( + List.of( + WeightedIdentifier.fromIdentifier(CharacterClothesRegistryME.Base.PANTS_BROWN), + WeightedIdentifier.fromIdentifier(CharacterClothesRegistryME.Base.PANTS_DARK_BROWN) + ), + List.of( + WeightedIdentifier.fromIdentifier(CharacterClothesRegistryME.Over.DRESS_BURGUNDY_AND_WHITE) + ) + ) + )); + + SHIRRIFF_PRESET = MALE_PRESET.copy() + .clearPatterns(CharacterPatternTypes.BODY) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.FAT) + )); + } + // endregion + + // region [DATAS] + static { + COMMON = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(MALE_PRESET)); + put(EntityCategories.FEMALE, new WeightedPool<>(FEMALE_PRESET)); + }}); + + SOLDIER = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(MALE_PRESET)); + }}); + + SHIRRIFF = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(SHIRRIFF_PRESET)); + }}); + } + // endregion +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/wildgoblin/WildGoblinTexturePresetsPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/wildgoblin/WildGoblinTexturePresetsPool.java new file mode 100644 index 0000000000..30b52f5b90 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/registries/content/texturepresets/pools/wildgoblin/WildGoblinTexturePresetsPool.java @@ -0,0 +1,197 @@ +package net.sevenstars.middleearth.registries.content.texturepresets.pools.wildgoblin; + +import net.sevenstars.api.dtos.WeightedPool; +import net.sevenstars.middleearth.registries.content.texturepresets.TexturePresetsRegistry; +import net.sevenstars.middleearth.registries.CharacterMaterialsRegistryME; +import net.sevenstars.middleearth.registries.CharacterPatternsRegistryME; +import net.sevenstars.middleearth.resources.datas.common.CharacterMaterialTypes; +import net.sevenstars.middleearth.resources.datas.common.CharacterPatternTypes; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePreset; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePresetDataPool; +import net.sevenstars.middleearth.resources.datas.common.EntityCategories; +import net.sevenstars.api.dtos.WeightedIdentifier; +import net.sevenstars.middleearth.resources.datas.texture_presets.WeightedTexturePresetHolder; + +import java.util.HashMap; +import java.util.List; + +public class WildGoblinTexturePresetsPool { + private final static WeightedTexturePresetHolder BASE_PRESET; + private final static WeightedTexturePresetHolder WEAK_PRESET; + private final static WeightedTexturePresetHolder WARRIOR_PRESET; + private final static WeightedTexturePresetHolder BRUTE_PRESET; + + public final static TexturePresetDataPool WEAK; + public final static TexturePresetDataPool WARRIOR; + public final static TexturePresetDataPool BRUTE; + + public static List fetchAll() { + return List.of( + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.WILD_GOBLIN_WEAK, WEAK), + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.WILD_GOBLIN_WARRIOR, WARRIOR), + new TexturePresetsRegistry.RegisterableNpcTextureData(TexturePresetsRegistry.WILD_GOBLIN_BRUTE, BRUTE) + ); + } + + //region [PRESETS] + static { + BASE_PRESET = new WeightedTexturePresetHolder() + .withMaterials(CharacterMaterialTypes.SKIN, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.PALE_WHITE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Skin.PINK) + )) + .withPatterns(CharacterPatternTypes.EAR, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.LARGE_POINTY), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.WIDE_POINTY), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Ear.SQUARE_POINTY) + )) + .withMaterials(CharacterMaterialTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Eye.RED) + )) + .withEmissiveEyes(true) + .withMaterials(CharacterMaterialTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.DIRTY_BROWN_ALMANDINE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GREASY_ALMANDINE), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLACK_ALMANDINE) + )); + + WEAK_PRESET = new WeightedTexturePresetHolder() + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.SKIN_TO_BONE) + )) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + TexturePreset.EMPTY_VALUE_KEY.withWeight(4), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.PONYTAIL_SHORT_ORNAMENTED), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BALD_DREADLOCKS_ORNAMENTED), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BALD_SMALL_DREADLOCKS) + )); + + WARRIOR_PRESET = new WeightedTexturePresetHolder() + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.FEMALE) + )) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.SLIM) + )) + .withPatterns(CharacterPatternTypes.HAIR, List.of( + TexturePreset.EMPTY_VALUE_KEY.withWeight(4), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.PONYTAIL_SHORT_ORNAMENTED), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BALD_DREADLOCKS_ORNAMENTED), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Hairs.Hair.BALD_SMALL_DREADLOCKS) + )); + + BRUTE_PRESET = WARRIOR_PRESET.copy() + .clearPatterns(CharacterPatternTypes.BODY) + .clearPatterns(CharacterPatternTypes.HEAD) + .clearPatterns(CharacterPatternTypes.EYE) + .withPatterns(CharacterPatternTypes.BODY, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.MUSCULAR), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Body.FAT) + )) + .withMaterials(CharacterMaterialTypes.HAIR, List.of( + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.DIRTY_BROWN_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.GREASY_GOLD), + WeightedIdentifier.fromKey(CharacterMaterialsRegistryME.Hair.BLACK_GOLD) + )); + } + // endregion + + // region [DATAS] + static { + WEAK = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(List.of( + WEAK_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .clearPatterns(CharacterPatternTypes.HEAD) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_WISE), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_THICK_BROW) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.SMALL_WIDE), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.COMMON) + )), + WEAK_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .clearPatterns(CharacterPatternTypes.HEAD) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.SMALL) + )), + WEAK_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .clearPatterns(CharacterPatternTypes.HEAD) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_VERY_WIDE) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.SMALL_WIDE) + )) + ))); + }}); + + WARRIOR = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(List.of( + WARRIOR_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .clearPatterns(CharacterPatternTypes.HEAD) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_WISE), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_THICK_BROW) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.SMALL_WIDE), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.COMMON) + )), + WARRIOR_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .clearPatterns(CharacterPatternTypes.HEAD) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.SMALL) + )), + WARRIOR_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .clearPatterns(CharacterPatternTypes.HEAD) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.GOBLIN_SMALL_VERY_WIDE) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.SMALL_WIDE) + )) + ))); + }}); + + BRUTE = new TexturePresetDataPool(new HashMap<>(){{ + put(EntityCategories.SHARED, new WeightedPool<>(BASE_PRESET)); + put(EntityCategories.MALE, new WeightedPool<>(List.of( + BRUTE_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .clearPatterns(CharacterPatternTypes.HEAD) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.URUK_TALL_DUMB) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.SMALL_VERY_HIGH_WIDE) + )), + BRUTE_PRESET.copy() + .clearPatterns(CharacterPatternTypes.EYE) + .clearPatterns(CharacterPatternTypes.HEAD) + .withPatterns(CharacterPatternTypes.HEAD, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Skins.Head.URUK_DUMB) + )) + .withPatterns(CharacterPatternTypes.EYE, List.of( + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.SMALL_HIGH_WIDE), + WeightedIdentifier.fromKey(CharacterPatternsRegistryME.Eyes.Eye.COMMON_HIGH) + )) + ))); + }}); + } + // endregion +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/BiomeEventsME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/BiomeEventsME.java deleted file mode 100644 index 58518215cc..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/BiomeEventsME.java +++ /dev/null @@ -1,90 +0,0 @@ -package net.sevenstars.middleearth.resources; - -import net.fabricmc.fabric.api.event.registry.DynamicRegistries; -import net.minecraft.entity.EntityType; -import net.minecraft.registry.*; -import net.minecraft.registry.entry.RegistryEntry; -import net.minecraft.util.Identifier; -import net.minecraft.world.World; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.entity.ModEntities; -import net.sevenstars.middleearth.item.EquipmentItemsME; -import net.sevenstars.middleearth.resources.datas.biome_events.BiomeEventData; -import net.sevenstars.middleearth.resources.datas.biome_events.BiomeEventDataLookup; -import net.sevenstars.middleearth.resources.datas.biome_events.BiomeNpcSpawningData; -import net.sevenstars.middleearth.resources.datas.npcs.pools.BrigandNpcDataPool; -import net.sevenstars.middleearth.resources.datas.npcs.pools.EreborNpcDataPool; -import net.sevenstars.middleearth.resources.datas.npcs.pools.GondorianNpcDataPool; -import net.sevenstars.middleearth.utils.IdentifierUtil; -import net.sevenstars.middleearth.utils.ItemUtil; -import net.sevenstars.middleearth.world.biomes.MEBiomeKeys; - -import java.util.List; -import java.util.Optional; - -/** - * Middle-earth mod npc wild spawn condition registry
- * To fetch a race during runtime, use : {@link BiomeEventDataLookup#findNpcDataForBiome(World, RegistryEntry)}
- * Datadriven content, do not use during runtime! - *
- */ -// TODO : Add more content -public class BiomeEventsME { - public static final RegistryKey> KEY = RegistryKey.ofRegistry(Identifier.of(MiddleEarth.MOD_ID, "biome_events")); - - public final static RegistryKey DEFAULT = of(IdentifierUtil.create("default")); - public final static RegistryKey ANORIEN = of(MEBiomeKeys.ANORIEN_FOOTHILLS.getValue()); - public final static RegistryKey PELENNOR_FIELDS = of(MEBiomeKeys.PELENNOR_FIELDS.getValue()); - public final static RegistryKey LONELY_MOUNTAINS_TAIGA = of(MEBiomeKeys.LONELY_MOUNTAIN_TAIGA.getValue()); - - private static RegistryKey of(Identifier id) { - return RegistryKey.of(KEY, id); - } - - public static void register(){ - MiddleEarth.LOGGER.logDebugMsg("Registering Dynamic Biome Events for " + MiddleEarth.MOD_ID); - DynamicRegistries.registerSynced(KEY, BiomeEventData.CODEC); - } - - public static void bootstrap(Registerable context) { - RegistryEntryLookup registryEntryLookup = context.getRegistryLookup(KEY); - - register(context, registryEntryLookup, DEFAULT, new BiomeEventData(List.of( - new BiomeNpcSpawningData(BrigandNpcDataPool.BRIGAND_CHIEFTAIN).withMount(EntityType.HORSE), - new BiomeNpcSpawningData(BrigandNpcDataPool.BRIGAND_CHIEFTAIN).withWeight(2), - new BiomeNpcSpawningData(BrigandNpcDataPool.BRIGAND_MERCENARY).withWeight(3), - new BiomeNpcSpawningData(BrigandNpcDataPool.BRIGAND_THIEF).withWeight(5), - new BiomeNpcSpawningData(BrigandNpcDataPool.BRIGAND_THUG).withWeight(5) - ))); - - register(context, registryEntryLookup, ANORIEN, new BiomeEventData(List.of( - new BiomeNpcSpawningData(GondorianNpcDataPool.GONDOR_SOLDIER).withWeight(2), - new BiomeNpcSpawningData(GondorianNpcDataPool.GONDOR_MILITIA), - new BiomeNpcSpawningData(GondorianNpcDataPool.GONDOR_MILITIA) - ))); - - register(context, registryEntryLookup, PELENNOR_FIELDS, new BiomeEventData(List.of( - new BiomeNpcSpawningData(GondorianNpcDataPool.GONDOR_FOUNTAIN_GUARD).withSkylightRequired(), - new BiomeNpcSpawningData(GondorianNpcDataPool.GONDOR_FOUNTAIN_GUARD).withSkylightRequired().withMount(EntityType.HORSE, ItemUtil.getIdentifier(EquipmentItemsME.GONDORIAN_HORSE_ARMOR)), - new BiomeNpcSpawningData(GondorianNpcDataPool.GONDOR_KNIGHT).withSkylightRequired().withWeight(3).withMount(EntityType.HORSE, ItemUtil.getIdentifier(EquipmentItemsME.GONDORIAN_HORSE_ARMOR)), - new BiomeNpcSpawningData(GondorianNpcDataPool.GONDOR_KNIGHT).withSkylightRequired().withWeight(3), - new BiomeNpcSpawningData(GondorianNpcDataPool.GONDOR_SOLDIER).withSkylightRequired().withWeight(8) - ))); - - register(context, registryEntryLookup, LONELY_MOUNTAINS_TAIGA, new BiomeEventData(List.of( - new BiomeNpcSpawningData(EreborNpcDataPool.EREBOR_ELITE).withSkylightRequired().withMount(ModEntities.BROADHOOF_GOAT, ItemUtil.getIdentifier(EquipmentItemsME.BROADHOOF_GOAT_PLATE_ARMOR)), - new BiomeNpcSpawningData(EreborNpcDataPool.EREBOR_SOLDIER).withSkylightRequired().withMount(ModEntities.BROADHOOF_GOAT, ItemUtil.getIdentifier(EquipmentItemsME.BROADHOOF_GOAT_PADDED_ARMOR), 0x50647d), - new BiomeNpcSpawningData(EreborNpcDataPool.EREBOR_SOLDIER).withSkylightRequired().withMount(ModEntities.BROADHOOF_GOAT, ItemUtil.getIdentifier(EquipmentItemsME.BROADHOOF_GOAT_PADDED_ARMOR), 0x50647d), - new BiomeNpcSpawningData(EreborNpcDataPool.EREBOR_MILITIA).withSkylightRequired().withWeight(3), - new BiomeNpcSpawningData(EreborNpcDataPool.EREBOR_MILITIA).withSkylightRequired().withWeight(8) - ))); - - - } - - private static BiomeEventData register(Registerable context, RegistryEntryLookup registryEntryLookup, RegistryKey key, BiomeEventData biomeEventData) { - Optional> optionalBiomeEvent = registryEntryLookup.getOptional(key); - optionalBiomeEvent.ifPresent(biomeReference -> context.register(key, biomeEventData)); - return biomeEventData; - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/CharacterMaterialsME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/CharacterMaterialsME.java deleted file mode 100644 index 3881f6a35d..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/CharacterMaterialsME.java +++ /dev/null @@ -1,286 +0,0 @@ -package net.sevenstars.middleearth.resources; - -import net.fabricmc.fabric.api.event.registry.DynamicRegistries; -import net.minecraft.registry.Registerable; -import net.minecraft.registry.Registry; -import net.minecraft.registry.RegistryKey; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.resources.datas.races.data.npctextures.NpcTextureMaterial; -import net.sevenstars.middleearth.resources.datas.races.data.npctextures.NpcTextureType; -import net.sevenstars.middleearth.utils.IdentifierUtil; - -/** - * Middle-earth mod npc texture materials registry
- * Used to register the different palette colors
- * Datadriven content, do not use during runtime! - *
- */ -public class CharacterMaterialsME { - public record Keys(){ - public static final RegistryKey> SKIN_KEY = ofRegistry("character_skin_material"); - public static final RegistryKey> EYE_KEY = ofRegistry("character_eye_material"); - public static final RegistryKey> HAIR_KEY = ofRegistry("character_hair_material"); - public static final RegistryKey> CLOTHING_KEY = ofRegistry("character_clothing_material"); - } - - public record Skin(){ - public final static RegistryKey BEIGE = of("beige", NpcTextureType.SKIN); - public final static RegistryKey BROWN = of("brown", NpcTextureType.SKIN); - public final static RegistryKey DARK_BEIGE = of("dark_beige", NpcTextureType.SKIN); - public final static RegistryKey DARK_GREEN = of("dark_green", NpcTextureType.SKIN); - public final static RegistryKey DARK_PINK = of("dark_pink", NpcTextureType.SKIN); - public final static RegistryKey GREEN = of("green", NpcTextureType.SKIN); - public final static RegistryKey GREY = of("grey", NpcTextureType.SKIN); - public final static RegistryKey LIGHT_GREY = of("light_grey", NpcTextureType.SKIN); - public final static RegistryKey MURKY_GREEN = of("murky_green", NpcTextureType.SKIN); - public final static RegistryKey OLIVE = of("olive", NpcTextureType.SKIN); - public final static RegistryKey PALE = of("pale", NpcTextureType.SKIN); - public final static RegistryKey PALE_GREEN = of("pale_green", NpcTextureType.SKIN); - public final static RegistryKey PALE_WHITE = of("pale_white", NpcTextureType.SKIN); - public final static RegistryKey PINK = of("pink", NpcTextureType.SKIN); - public final static RegistryKey RED = of("red", NpcTextureType.SKIN); - public final static RegistryKey RUST = of("rust", NpcTextureType.SKIN); - public final static RegistryKey SANDY_GREEN = of("sandy_green", NpcTextureType.SKIN); - public final static RegistryKey SLIGHT_BROWN = of("slight_brown", NpcTextureType.SKIN); - public final static RegistryKey SWAMPY_GREEN = of("swampy_green", NpcTextureType.SKIN); - public final static RegistryKey TAN = of("tan", NpcTextureType.SKIN); - public final static RegistryKey TAN_DESATURATED = of("tan_desaturated", NpcTextureType.SKIN); - public final static RegistryKey WINE = of("wine", NpcTextureType.SKIN); - public final static RegistryKey YELLOWISH_GREEN = of("yellowish_green", NpcTextureType.SKIN); - } - - public record Eye() { - public final static RegistryKey BLACK = of("black", NpcTextureType.EYE); - public final static RegistryKey BLUE = of("blue", NpcTextureType.EYE); - public final static RegistryKey BROWN = of("brown", NpcTextureType.EYE); - public final static RegistryKey DARK_GREEN = of("dark_green", NpcTextureType.EYE); - public final static RegistryKey DEEP_BLUE = of("deep_blue", NpcTextureType.EYE); - public final static RegistryKey GREEN = of("green", NpcTextureType.EYE); - public final static RegistryKey ICE = of("ice", NpcTextureType.EYE); - public final static RegistryKey NAVY = of("navy", NpcTextureType.EYE); - public final static RegistryKey PALE = of("pale", NpcTextureType.EYE); - public final static RegistryKey RED = of("red", NpcTextureType.EYE); - public final static RegistryKey YELLOW = of("yellow", NpcTextureType.EYE); - } - public record Hair() { - public final static RegistryKey BLACK_ALMANDINE = of("black_and_almandine", NpcTextureType.HAIR); - public final static RegistryKey BLACK_BEADS = of("black_and_beads", NpcTextureType.HAIR); - public final static RegistryKey BLACK_COPPER = of("black_and_copper", NpcTextureType.HAIR); - public final static RegistryKey BLACK_GOLD = of("black_and_gold", NpcTextureType.HAIR); - public final static RegistryKey BLACK_SILVER = of("black_and_silver", NpcTextureType.HAIR); - public final static RegistryKey COLD_BLACK_ALMANDINE = of("cold_black_and_almandine", NpcTextureType.HAIR); - public final static RegistryKey COLD_BLACK_BEADS = of("cold_black_and_beads", NpcTextureType.HAIR); - public final static RegistryKey COLD_BLACK_COPPER = of("cold_black_and_copper", NpcTextureType.HAIR); - public final static RegistryKey COLD_BLACK_GOLD = of("cold_black_and_gold", NpcTextureType.HAIR); - public final static RegistryKey COLD_BLACK_SILVER = of("cold_black_and_silver", NpcTextureType.HAIR); - public final static RegistryKey BROWN_ALMANDINE = of("brown_and_almandine", NpcTextureType.HAIR); - public final static RegistryKey BROWN_BEADS = of("brown_and_beads", NpcTextureType.HAIR); - public final static RegistryKey BROWN_COPPER = of("brown_and_copper", NpcTextureType.HAIR); - public final static RegistryKey BROWN_GOLD = of("brown_and_gold", NpcTextureType.HAIR); - public final static RegistryKey BROWN_SILVER = of("brown_and_silver", NpcTextureType.HAIR); - public final static RegistryKey DARK_BROWN_ALMANDINE = of("dark_brown_and_almandine", NpcTextureType.HAIR); - public final static RegistryKey DARK_BROWN_BEADS = of("dark_brown_and_beads", NpcTextureType.HAIR); - public final static RegistryKey DARK_BROWN_COPPER = of("dark_brown_and_copper", NpcTextureType.HAIR); - public final static RegistryKey DARK_BROWN_GOLD = of("dark_brown_and_gold", NpcTextureType.HAIR); - public final static RegistryKey DARK_BROWN_SILVER = of("dark_brown_and_silver", NpcTextureType.HAIR); - public final static RegistryKey BLONDE_ALMANDINE = of("blonde_and_almandine", NpcTextureType.HAIR); - public final static RegistryKey BLONDE_BEADS = of("blonde_and_beads", NpcTextureType.HAIR); - public final static RegistryKey BLONDE_COPPER = of("blonde_and_copper", NpcTextureType.HAIR); - public final static RegistryKey BLONDE_GOLD = of("blonde_and_gold", NpcTextureType.HAIR); - public final static RegistryKey BLONDE_SILVER = of("blonde_and_silver", NpcTextureType.HAIR); - public final static RegistryKey DIRTY_BLONDE_ALMANDINE = of("dirty_blonde_and_almandine", NpcTextureType.HAIR); - public final static RegistryKey DIRTY_BLONDE_BEADS = of("dirty_blonde_and_beads", NpcTextureType.HAIR); - public final static RegistryKey DIRTY_BLONDE_COPPER = of("dirty_blonde_and_copper", NpcTextureType.HAIR); - public final static RegistryKey DIRTY_BLONDE_GOLD = of("dirty_blonde_and_gold", NpcTextureType.HAIR); - public final static RegistryKey DIRTY_BLONDE_SILVER = of("dirty_blonde_and_silver", NpcTextureType.HAIR); - public final static RegistryKey DIRTY_BROWN_ALMANDINE = of("dirty_brown_and_almandine", NpcTextureType.HAIR); - public final static RegistryKey DIRTY_BROWN_BEADS = of("dirty_brown_and_beads", NpcTextureType.HAIR); - public final static RegistryKey DIRTY_BROWN_COPPER = of("dirty_brown_and_copper", NpcTextureType.HAIR); - public final static RegistryKey DIRTY_BROWN_GOLD = of("dirty_brown_and_gold", NpcTextureType.HAIR); - public final static RegistryKey DIRTY_BROWN_SILVER = of("dirty_brown_and_silver", NpcTextureType.HAIR); - public final static RegistryKey GREASY_ALMANDINE = of("greasy_and_almandine", NpcTextureType.HAIR); - public final static RegistryKey GREASY_BEADS = of("greasy_and_beads", NpcTextureType.HAIR); - public final static RegistryKey GREASY_COPPER = of("greasy_and_copper", NpcTextureType.HAIR); - public final static RegistryKey GREASY_GOLD = of("greasy_and_gold", NpcTextureType.HAIR); - public final static RegistryKey GREASY_SILVER = of("greasy_and_silver", NpcTextureType.HAIR); - public final static RegistryKey STRAW_ALMANDINE = of("straw_and_almandine", NpcTextureType.HAIR); - public final static RegistryKey STRAW_BEADS = of("straw_and_beads", NpcTextureType.HAIR); - public final static RegistryKey STRAW_COPPER = of("straw_and_copper", NpcTextureType.HAIR); - public final static RegistryKey STRAW_GOLD = of("straw_and_gold", NpcTextureType.HAIR); - public final static RegistryKey STRAW_SILVER = of("straw_and_silver", NpcTextureType.HAIR); - public final static RegistryKey WHITE_ALMANDINE = of("white_and_almandine", NpcTextureType.HAIR); - public final static RegistryKey WHITE_BEADS = of("white_and_beads", NpcTextureType.HAIR); - public final static RegistryKey WHITE_COPPER = of("white_and_copper", NpcTextureType.HAIR); - public final static RegistryKey WHITE_GOLD = of("white_and_gold", NpcTextureType.HAIR); - public final static RegistryKey WHITE_SILVER = of("white_and_silver", NpcTextureType.HAIR); - public final static RegistryKey GRAY_ALMANDINE = of("gray_and_almandine", NpcTextureType.HAIR); - public final static RegistryKey GRAY_BEADS = of("gray_and_beads", NpcTextureType.HAIR); - public final static RegistryKey GRAY_COPPER = of("gray_and_copper", NpcTextureType.HAIR); - public final static RegistryKey GRAY_GOLD = of("gray_and_gold", NpcTextureType.HAIR); - public final static RegistryKey GRAY_SILVER = of("gray_and_silver", NpcTextureType.HAIR); - public final static RegistryKey GINGER_ALMANDINE = of("ginger_and_almandine", NpcTextureType.HAIR); - public final static RegistryKey GINGER_BEADS = of("ginger_and_beads", NpcTextureType.HAIR); - public final static RegistryKey GINGER_COPPER = of("ginger_and_copper", NpcTextureType.HAIR); - public final static RegistryKey GINGER_GOLD = of("ginger_and_gold", NpcTextureType.HAIR); - public final static RegistryKey GINGER_SILVER = of("ginger_and_silver", NpcTextureType.HAIR); - } - - public record Clothing() { - public final static RegistryKey WHITE = of("white", NpcTextureType.CLOTHING); - public final static RegistryKey BROWN = of("brown", NpcTextureType.CLOTHING); - public final static RegistryKey ROT_GREEN = of("rot_green", NpcTextureType.CLOTHING); - public final static RegistryKey GRAY = of("gray", NpcTextureType.CLOTHING); - public final static RegistryKey BLUE_AND_COPPER = of("blue_and_copper", NpcTextureType.CLOTHING); - } - - public static void bootstrapSkins(Registerable registry) { - register(registry, Skin.BEIGE, NpcTextureType.SKIN); - register(registry, Skin.BROWN, NpcTextureType.SKIN); - register(registry, Skin.DARK_BEIGE, NpcTextureType.SKIN); - register(registry, Skin.DARK_GREEN, NpcTextureType.SKIN); - register(registry, Skin.DARK_PINK, NpcTextureType.SKIN); - register(registry, Skin.GREEN, NpcTextureType.SKIN); - register(registry, Skin.GREY, NpcTextureType.SKIN); - register(registry, Skin.LIGHT_GREY, NpcTextureType.SKIN); - register(registry, Skin.MURKY_GREEN, NpcTextureType.SKIN); - register(registry, Skin.OLIVE, NpcTextureType.SKIN); - register(registry, Skin.PALE, NpcTextureType.SKIN); - register(registry, Skin.PALE_GREEN, NpcTextureType.SKIN); - register(registry, Skin.PALE_WHITE, NpcTextureType.SKIN); - register(registry, Skin.PINK, NpcTextureType.SKIN); - register(registry, Skin.RED, NpcTextureType.SKIN); - register(registry, Skin.RUST, NpcTextureType.SKIN); - register(registry, Skin.SANDY_GREEN, NpcTextureType.SKIN); - register(registry, Skin.SLIGHT_BROWN, NpcTextureType.SKIN); - register(registry, Skin.SWAMPY_GREEN, NpcTextureType.SKIN); - register(registry, Skin.TAN, NpcTextureType.SKIN); - register(registry, Skin.TAN_DESATURATED, NpcTextureType.SKIN); - register(registry, Skin.WINE, NpcTextureType.SKIN); - register(registry, Skin.YELLOWISH_GREEN, NpcTextureType.SKIN); - } - - public static void bootstrapEyes(Registerable registry) { - register(registry, Eye.BLACK, NpcTextureType.EYE); - register(registry, Eye.BLUE, NpcTextureType.EYE); - register(registry, Eye.BROWN, NpcTextureType.EYE); - register(registry, Eye.DARK_GREEN, NpcTextureType.EYE); - register(registry, Eye.DEEP_BLUE, NpcTextureType.EYE); - register(registry, Eye.GREEN, NpcTextureType.EYE); - register(registry, Eye.ICE, NpcTextureType.EYE); - register(registry, Eye.NAVY, NpcTextureType.EYE); - register(registry, Eye.PALE, NpcTextureType.EYE); - register(registry, Eye.RED, NpcTextureType.EYE); - register(registry, Eye.YELLOW, NpcTextureType.EYE); - } - public static void bootstrapHairs(Registerable registry) { - register(registry, Hair.BLACK_GOLD, NpcTextureType.HAIR); - register(registry, Hair.COLD_BLACK_GOLD, NpcTextureType.HAIR); - register(registry, Hair.BROWN_GOLD, NpcTextureType.HAIR); - register(registry, Hair.DARK_BROWN_GOLD, NpcTextureType.HAIR); - register(registry, Hair.BLONDE_GOLD, NpcTextureType.HAIR); - register(registry, Hair.DIRTY_BLONDE_GOLD, NpcTextureType.HAIR); - register(registry, Hair.DIRTY_BROWN_GOLD, NpcTextureType.HAIR); - register(registry, Hair.GREASY_GOLD, NpcTextureType.HAIR); - register(registry, Hair.STRAW_GOLD, NpcTextureType.HAIR); - register(registry, Hair.GINGER_GOLD, NpcTextureType.HAIR); - register(registry, Hair.WHITE_GOLD, NpcTextureType.HAIR); - register(registry, Hair.GRAY_GOLD, NpcTextureType.HAIR); - - register(registry, Hair.BLACK_BEADS, NpcTextureType.HAIR); - register(registry, Hair.COLD_BLACK_BEADS, NpcTextureType.HAIR); - register(registry, Hair.BROWN_BEADS, NpcTextureType.HAIR); - register(registry, Hair.DARK_BROWN_BEADS, NpcTextureType.HAIR); - register(registry, Hair.BLONDE_BEADS, NpcTextureType.HAIR); - register(registry, Hair.DIRTY_BLONDE_BEADS, NpcTextureType.HAIR); - register(registry, Hair.DIRTY_BROWN_BEADS, NpcTextureType.HAIR); - register(registry, Hair.GREASY_BEADS, NpcTextureType.HAIR); - register(registry, Hair.STRAW_BEADS, NpcTextureType.HAIR); - register(registry, Hair.GINGER_BEADS, NpcTextureType.HAIR); - register(registry, Hair.WHITE_BEADS, NpcTextureType.HAIR); - register(registry, Hair.GRAY_BEADS, NpcTextureType.HAIR); - - register(registry, Hair.BLACK_COPPER, NpcTextureType.HAIR); - register(registry, Hair.COLD_BLACK_COPPER, NpcTextureType.HAIR); - register(registry, Hair.BROWN_COPPER, NpcTextureType.HAIR); - register(registry, Hair.DARK_BROWN_COPPER, NpcTextureType.HAIR); - register(registry, Hair.BLONDE_COPPER, NpcTextureType.HAIR); - register(registry, Hair.DIRTY_BLONDE_COPPER, NpcTextureType.HAIR); - register(registry, Hair.DIRTY_BROWN_COPPER, NpcTextureType.HAIR); - register(registry, Hair.GREASY_COPPER, NpcTextureType.HAIR); - register(registry, Hair.STRAW_COPPER, NpcTextureType.HAIR); - register(registry, Hair.GINGER_COPPER, NpcTextureType.HAIR); - register(registry, Hair.WHITE_COPPER, NpcTextureType.HAIR); - register(registry, Hair.GRAY_COPPER, NpcTextureType.HAIR); - - register(registry, Hair.BLACK_ALMANDINE, NpcTextureType.HAIR); - register(registry, Hair.COLD_BLACK_ALMANDINE, NpcTextureType.HAIR); - register(registry, Hair.BROWN_ALMANDINE, NpcTextureType.HAIR); - register(registry, Hair.DARK_BROWN_ALMANDINE, NpcTextureType.HAIR); - register(registry, Hair.BLONDE_ALMANDINE, NpcTextureType.HAIR); - register(registry, Hair.DIRTY_BLONDE_ALMANDINE, NpcTextureType.HAIR); - register(registry, Hair.DIRTY_BROWN_ALMANDINE, NpcTextureType.HAIR); - register(registry, Hair.GREASY_ALMANDINE, NpcTextureType.HAIR); - register(registry, Hair.STRAW_ALMANDINE, NpcTextureType.HAIR); - register(registry, Hair.GINGER_ALMANDINE, NpcTextureType.HAIR); - register(registry, Hair.WHITE_ALMANDINE, NpcTextureType.HAIR); - register(registry, Hair.GRAY_ALMANDINE, NpcTextureType.HAIR); - - register(registry, Hair.BLACK_SILVER, NpcTextureType.HAIR); - register(registry, Hair.COLD_BLACK_SILVER, NpcTextureType.HAIR); - register(registry, Hair.BROWN_SILVER, NpcTextureType.HAIR); - register(registry, Hair.DARK_BROWN_SILVER, NpcTextureType.HAIR); - register(registry, Hair.BLONDE_SILVER, NpcTextureType.HAIR); - register(registry, Hair.DIRTY_BLONDE_SILVER, NpcTextureType.HAIR); - register(registry, Hair.DIRTY_BROWN_SILVER, NpcTextureType.HAIR); - register(registry, Hair.GREASY_SILVER, NpcTextureType.HAIR); - register(registry, Hair.STRAW_SILVER, NpcTextureType.HAIR); - register(registry, Hair.GINGER_SILVER, NpcTextureType.HAIR); - register(registry, Hair.WHITE_SILVER, NpcTextureType.HAIR); - register(registry, Hair.GRAY_SILVER, NpcTextureType.HAIR); - } - - public static void bootstrapClothings(Registerable registry) { - register(registry, Clothing.WHITE, NpcTextureType.CLOTHING); - register(registry, Clothing.BROWN, NpcTextureType.CLOTHING); - register(registry, Clothing.ROT_GREEN, NpcTextureType.CLOTHING); - register(registry, Clothing.GRAY, NpcTextureType.CLOTHING); - register(registry, Clothing.BLUE_AND_COPPER, NpcTextureType.CLOTHING); - } - - public static void register() { - MiddleEarth.LOGGER.logDebugMsg("Registering Npc Texture Materials for " + MiddleEarth.MOD_ID); - DynamicRegistries.registerSynced(Keys.SKIN_KEY, NpcTextureMaterial.CODEC); - DynamicRegistries.registerSynced(Keys.EYE_KEY, NpcTextureMaterial.CODEC); - DynamicRegistries.registerSynced(Keys.HAIR_KEY, NpcTextureMaterial.CODEC); - DynamicRegistries.registerSynced(Keys.CLOTHING_KEY, NpcTextureMaterial.CODEC); - } - - private static void register(Registerable registry, RegistryKey key, NpcTextureType type) { - NpcTextureMaterial pattern = new NpcTextureMaterial(key.getValue(), type); - register(registry, key, pattern, getKey(type)); - } - private static void register(Registerable registerable, RegistryKey registryKey, NpcTextureMaterial content, RegistryKey> registryRegistryKey) { - String name = registryKey.getValue().getPath(); - RegistryKey key = RegistryKey.of(registryRegistryKey,Identifier.of(MiddleEarth.MOD_ID,name)); - registerable.register(key, content); - } - - private static RegistryKey of(String id, NpcTextureType type) { - return RegistryKey.of(getKey(type), IdentifierUtil.create(id)); - } - - private static RegistryKey> ofRegistry(String id) { - return RegistryKey.ofRegistry(IdentifierUtil.create(id)); - } - - public static RegistryKey> getKey(NpcTextureType category){ - return switch (category) { - case NpcTextureType.SKIN -> Keys.SKIN_KEY; - case NpcTextureType.EYE -> Keys.EYE_KEY; - case NpcTextureType.HAIR -> Keys.HAIR_KEY; - case NpcTextureType.CLOTHING -> Keys.CLOTHING_KEY; - default -> null; - }; - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/CharacterPatternsME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/CharacterPatternsME.java deleted file mode 100644 index c95186c1e8..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/CharacterPatternsME.java +++ /dev/null @@ -1,292 +0,0 @@ -package net.sevenstars.middleearth.resources; - -import net.fabricmc.fabric.api.event.registry.DynamicRegistries; -import net.minecraft.registry.Registerable; -import net.minecraft.registry.Registry; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.RegistryWrapper; -import net.minecraft.registry.entry.RegistryEntry; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.resources.datas.races.data.npctextures.NpcTexturePattern; -import net.sevenstars.middleearth.resources.datas.races.data.npctextures.NpcTextureType; -import net.sevenstars.middleearth.utils.IdentifierUtil; - -import java.util.Optional; - -/** - * Middle-earth mod npc texture patterns registry
- * Used to register the different patterns
- * Datadriven content, do not use during runtime! - *
- */ -public class CharacterPatternsME { - - public record Keys(){ - public static final RegistryKey> SKIN_KEY = ofRegistry("character_skin_pattern"); - public static final RegistryKey> EYE_KEY = ofRegistry("character_eye_pattern"); - public static final RegistryKey> HAIR_KEY = ofRegistry("character_hair_pattern"); - public static final RegistryKey> CLOTHING_KEY = ofRegistry("character_clothing_pattern"); - } - - public record Skins() { - public record Body(){ - public final static RegistryKey FAT = of("body_fat", NpcTextureType.BODY); - public final static RegistryKey FEMALE = of("body_female", NpcTextureType.BODY); - public final static RegistryKey MUSCULAR = of("body_muscular", NpcTextureType.BODY); - public final static RegistryKey SKIN_TO_BONE = of("body_skin_to_bone", NpcTextureType.BODY); - public final static RegistryKey SLIM = of("body_slim", NpcTextureType.BODY); - } - - public record Head(){ - public final static RegistryKey FEMALE = of("head_female", NpcTextureType.HEAD); - public final static RegistryKey GOBLIN = of("head_goblin", NpcTextureType.HEAD); - public final static RegistryKey GOBLIN_SMALL = of("head_goblin_small", NpcTextureType.HEAD); - public final static RegistryKey GOBLIN_SMALL_THICK_BROW = of("head_goblin_thick_brow", NpcTextureType.HEAD); - public final static RegistryKey GOBLIN_SMALL_VERY_WIDE = of("head_goblin_very_wide", NpcTextureType.HEAD); - public final static RegistryKey GOBLIN_SMALL_WISE = of("head_goblin_wise", NpcTextureType.HEAD); - public final static RegistryKey MALE = of("head_male", NpcTextureType.HEAD); - public final static RegistryKey URUK_DUMB = of("head_uruk_dumb", NpcTextureType.HEAD); - public final static RegistryKey URUK_TALL_DUMB = of("head_uruk_tall_dumb", NpcTextureType.HEAD); - } - - public record Ear(){ - public final static RegistryKey LARGE_POINTY = of("ear_large_pointy", NpcTextureType.EAR); - public final static RegistryKey NORMAL = of("ear_normal", NpcTextureType.EAR); - public final static RegistryKey POINTY = of("ear_pointy", NpcTextureType.EAR); - public final static RegistryKey SMALL = of("ear_small", NpcTextureType.EAR); - public final static RegistryKey SMALL_POINTY = of("ear_small_pointy", NpcTextureType.EAR); - public final static RegistryKey SQUARE = of("ear_square", NpcTextureType.EAR); - public final static RegistryKey SQUARE_POINTY = of("ear_square_pointy", NpcTextureType.EAR); - public final static RegistryKey WIDE_POINTY = of("ear_wide_pointy", NpcTextureType.EAR); - } - - public record Nose(){ - public final static RegistryKey CUBE = of("nose_cube", NpcTextureType.NOSE); - public final static RegistryKey VILLAGER = of("nose_villager", NpcTextureType.NOSE); - public final static RegistryKey LARGE_CUBE_CENTER = of("nose_large_center", NpcTextureType.NOSE); - public final static RegistryKey LARGE_CUBE_HIGH = of("nose_large_high", NpcTextureType.NOSE); - } - - public record Scar(){ - public final static RegistryKey EYE_RIGHT = of("scar_eye_right", NpcTextureType.SCAR); - public final static RegistryKey EYE_LEFT = of("scar_eye_left", NpcTextureType.SCAR); - } - } - - public record Eyes() { - public record Eye() { - public final static RegistryKey COMMON = of("eye_common", NpcTextureType.EYE); - public final static RegistryKey BLIND_LEFT = of("eye_blind_left", NpcTextureType.EYE); - public final static RegistryKey BLIND_RIGHT = of("eye_blind_right", NpcTextureType.EYE); - public final static RegistryKey SMALL = of("eye_small", NpcTextureType.EYE); - public final static RegistryKey SMALL_HIGH_WIDE = of("eye_small_high_wide", NpcTextureType.EYE); - public final static RegistryKey SMALL_LOW_WIDE = of("eye_small_low_wide", NpcTextureType.EYE); - public final static RegistryKey SMALL_WIDE = of("eye_small_wide", NpcTextureType.EYE); - } - } - - public record Hairs() { - public class Hair { - public final static RegistryKey BALD_DREADLOCKS_ORNAMENTED = of("hair_bald_dreadlocks_ornamented", NpcTextureType.HAIR); - public final static RegistryKey BALD_SIDES = of("hair_bald_sides", NpcTextureType.HAIR); - public final static RegistryKey BALD_SMALL_DREADLOCKS = of("hair_bald_small_dreadlocks", NpcTextureType.HAIR); - public final static RegistryKey SIDE_BALDING = of("hair_side_balding", NpcTextureType.HAIR); - public final static RegistryKey TOP_BALDING = of("hair_top_balding", NpcTextureType.HAIR); - public final static RegistryKey BOWL = of("hair_bowl", NpcTextureType.HAIR); - public final static RegistryKey DIRTY_MOP = of("hair_dirty_mop", NpcTextureType.HAIR); - public final static RegistryKey FLAT_LONG = of("hair_flat_long", NpcTextureType.HAIR); - public final static RegistryKey LONG = of("hair_long", NpcTextureType.HAIR); - public final static RegistryKey PONYTAIL_SHORT_ORNAMENTED = of("hair_ponytail_short_ornamented", NpcTextureType.HAIR); - public final static RegistryKey SHARP = of("hair_sharp", NpcTextureType.HAIR); - public final static RegistryKey SHORT = of("hair_short", NpcTextureType.HAIR); - public final static RegistryKey UNCUT = of("hair_uncut", NpcTextureType.HAIR); - public final static RegistryKey VERY_LONG = of("hair_very_long", NpcTextureType.HAIR); - public final static RegistryKey SEMI_LONG = of("hair_semi_long", NpcTextureType.HAIR); - } - - public record Beard() { - public final static RegistryKey BROAD = of("beard_broad", NpcTextureType.BEARD); - public final static RegistryKey CHUNKY_BRAIDS = of("beard_chunky_braids", NpcTextureType.BEARD); - public final static RegistryKey CLEAN = of("beard_clean", NpcTextureType.BEARD); - public final static RegistryKey DUAL_LARGE_ORNAMENTED = of("beard_dual_large_ornamented", NpcTextureType.BEARD); - public final static RegistryKey DUAL_ORNAMENTED = of("beard_dual_ornamented", NpcTextureType.BEARD); - public final static RegistryKey FANCY_MUSTACHE_ORNAMENTED= of("beard_fancy_mustache_ornamented", NpcTextureType.BEARD); - public final static RegistryKey LARGE = of("beard_large", NpcTextureType.BEARD); - public final static RegistryKey LONG_BRAIDS_ORNAMENTED = of("beard_long_braids_ornamented", NpcTextureType.BEARD); - public final static RegistryKey LONG_SINGLE_ORNAMENTED = of("beard_long_single_ornamented", NpcTextureType.BEARD); - public final static RegistryKey SHORT = of("beard_short", NpcTextureType.BEARD); - public final static RegistryKey SINGLE = of("beard_single", NpcTextureType.BEARD); - public final static RegistryKey UNCLEAN_ORNAMENTED = of("beard_unclean_ornamented", NpcTextureType.BEARD); - public final static RegistryKey VERY_BROAD = of("beard_very_broad", NpcTextureType.BEARD); - public final static RegistryKey VERY_LARGE_MUSTACHE = of("beard_very_large_mustache", NpcTextureType.BEARD); - public final static RegistryKey VERY_LONG = of("beard_very_long", NpcTextureType.BEARD); - public final static RegistryKey SEMI_LONG = of("beard_semi_long", NpcTextureType.BEARD); - } - - public record Eyebrow() { - public final static RegistryKey BASIC = of("eyebrow_basic", NpcTextureType.EYEBROW); - public final static RegistryKey LONG = of("eyebrow_long", NpcTextureType.EYEBROW); - public final static RegistryKey SHORT = of("eyebrow_short", NpcTextureType.EYEBROW); - public final static RegistryKey UNI = of("eyebrow_uni", NpcTextureType.EYEBROW); - public final static RegistryKey THICK = of("eyebrow_thick", NpcTextureType.EYEBROW); - } - } - - public record Clothing(){ - public final static RegistryKey FULL_TOGA = of("clothing_full_toga", NpcTextureType.CLOTHING); - public final static RegistryKey ROBE = of("clothing_robe", NpcTextureType.CLOTHING); - public final static RegistryKey SKIRT = of("clothing_skirt", NpcTextureType.CLOTHING); - public final static RegistryKey SKIRT_WITH_STROPHIUM = of("clothing_skirt_with_strophium", NpcTextureType.CLOTHING); - public final static RegistryKey TOGA = of("clothing_toga", NpcTextureType.CLOTHING); - public final static RegistryKey THONG = of("clothing_thong", NpcTextureType.CLOTHING); - public final static RegistryKey PANTS = of("clothing_pants", NpcTextureType.CLOTHING); - public final static RegistryKey DWARVEN_GARMENT = of("clothing_dwarven_garment", NpcTextureType.CLOTHING); - public final static RegistryKey DWARVEN_GARMENT_WITH_PANTS = of("clothing_dwarven_garment_with_pants", NpcTextureType.CLOTHING); - - } - - public static void bootstrapSkins(Registerable registry) { - register(registry, Skins.Body.FAT, NpcTextureType.SKIN); - register(registry, Skins.Body.FEMALE, NpcTextureType.SKIN); - register(registry, Skins.Body.MUSCULAR, NpcTextureType.SKIN); - register(registry, Skins.Body.SKIN_TO_BONE, NpcTextureType.SKIN); - register(registry, Skins.Body.SLIM, NpcTextureType.SKIN); - - register(registry, Skins.Head.FEMALE, NpcTextureType.HEAD); - register(registry, Skins.Head.GOBLIN, NpcTextureType.HEAD); - register(registry, Skins.Head.GOBLIN_SMALL, NpcTextureType.HEAD); - register(registry, Skins.Head.GOBLIN_SMALL_THICK_BROW, NpcTextureType.HEAD); - register(registry, Skins.Head.GOBLIN_SMALL_VERY_WIDE, NpcTextureType.HEAD); - register(registry, Skins.Head.GOBLIN_SMALL_WISE, NpcTextureType.HEAD); - register(registry, Skins.Head.MALE, NpcTextureType.HEAD); - register(registry, Skins.Head.URUK_DUMB, NpcTextureType.HEAD); - register(registry, Skins.Head.URUK_TALL_DUMB, NpcTextureType.HEAD); - - register(registry, Skins.Ear.LARGE_POINTY, NpcTextureType.EAR); - register(registry, Skins.Ear.NORMAL, NpcTextureType.EAR); - register(registry, Skins.Ear.POINTY, NpcTextureType.EAR); - register(registry, Skins.Ear.SMALL, NpcTextureType.EAR); - register(registry, Skins.Ear.SMALL_POINTY, NpcTextureType.EAR); - register(registry, Skins.Ear.SQUARE, NpcTextureType.EAR); - register(registry, Skins.Ear.SQUARE_POINTY, NpcTextureType.EAR); - register(registry, Skins.Ear.WIDE_POINTY, NpcTextureType.EAR); - - register(registry, Skins.Nose.CUBE, NpcTextureType.NOSE); - register(registry, Skins.Nose.VILLAGER, NpcTextureType.NOSE); - register(registry, Skins.Nose.LARGE_CUBE_CENTER, NpcTextureType.NOSE); - register(registry, Skins.Nose.LARGE_CUBE_HIGH, NpcTextureType.NOSE); - - register(registry, Skins.Scar.EYE_RIGHT, NpcTextureType.SCAR); - register(registry, Skins.Scar.EYE_LEFT, NpcTextureType.SCAR); - } - - public static void bootstrapEyes(Registerable registry) { - register(registry, Eyes.Eye.COMMON, NpcTextureType.EYE); - register(registry, Eyes.Eye.BLIND_LEFT, NpcTextureType.EYE); - register(registry, Eyes.Eye.BLIND_RIGHT, NpcTextureType.EYE); - register(registry, Eyes.Eye.SMALL, NpcTextureType.EYE); - register(registry, Eyes.Eye.SMALL_HIGH_WIDE, NpcTextureType.EYE); - register(registry, Eyes.Eye.SMALL_LOW_WIDE, NpcTextureType.EYE); - register(registry, Eyes.Eye.SMALL_WIDE, NpcTextureType.EYE); - } - - public static void bootstrapHairs(Registerable registry) { - register(registry, Hairs.Hair.BALD_DREADLOCKS_ORNAMENTED, NpcTextureType.HAIR, true); - register(registry, Hairs.Hair.BALD_SIDES, NpcTextureType.HAIR); - register(registry, Hairs.Hair.BALD_SMALL_DREADLOCKS, NpcTextureType.HAIR, true); - register(registry, Hairs.Hair.BOWL, NpcTextureType.HAIR); - register(registry, Hairs.Hair.DIRTY_MOP, NpcTextureType.HAIR, true); - register(registry, Hairs.Hair.FLAT_LONG, NpcTextureType.HAIR, true); - register(registry, Hairs.Hair.LONG, NpcTextureType.HAIR, true); - register(registry, Hairs.Hair.PONYTAIL_SHORT_ORNAMENTED, NpcTextureType.HAIR); - register(registry, Hairs.Hair.SHARP, NpcTextureType.HAIR); - register(registry, Hairs.Hair.SHORT, NpcTextureType.HAIR); - register(registry, Hairs.Hair.SIDE_BALDING, NpcTextureType.HAIR); - register(registry, Hairs.Hair.TOP_BALDING, NpcTextureType.HAIR,true); - register(registry, Hairs.Hair.UNCUT, NpcTextureType.HAIR); - register(registry, Hairs.Hair.VERY_LONG, NpcTextureType.HAIR, true); - register(registry, Hairs.Hair.SEMI_LONG, NpcTextureType.HAIR, true); - - register(registry, Hairs.Eyebrow.BASIC, NpcTextureType.EYEBROW); - register(registry, Hairs.Eyebrow.LONG, NpcTextureType.EYEBROW); - register(registry, Hairs.Eyebrow.SHORT, NpcTextureType.EYEBROW); - register(registry, Hairs.Eyebrow.UNI, NpcTextureType.EYEBROW); - register(registry, Hairs.Eyebrow.THICK, NpcTextureType.EYEBROW); - - register(registry, Hairs.Beard.BROAD, NpcTextureType.BEARD, true); - register(registry, Hairs.Beard.CHUNKY_BRAIDS, NpcTextureType.BEARD, true); - register(registry, Hairs.Beard.CLEAN, NpcTextureType.BEARD, true); - register(registry, Hairs.Beard.DUAL_LARGE_ORNAMENTED, NpcTextureType.BEARD, true); - register(registry, Hairs.Beard.LONG_SINGLE_ORNAMENTED, NpcTextureType.BEARD, true); - register(registry, Hairs.Beard.FANCY_MUSTACHE_ORNAMENTED, NpcTextureType.BEARD, true); - register(registry, Hairs.Beard.DUAL_ORNAMENTED, NpcTextureType.BEARD, true); - register(registry, Hairs.Beard.LARGE, NpcTextureType.BEARD, true); - register(registry, Hairs.Beard.LONG_BRAIDS_ORNAMENTED, NpcTextureType.BEARD, true); - register(registry, Hairs.Beard.SHORT, NpcTextureType.BEARD, false); - register(registry, Hairs.Beard.SINGLE, NpcTextureType.BEARD, true); - register(registry, Hairs.Beard.UNCLEAN_ORNAMENTED, NpcTextureType.BEARD, true); - register(registry, Hairs.Beard.VERY_BROAD, NpcTextureType.BEARD, true); - register(registry, Hairs.Beard.VERY_LARGE_MUSTACHE, NpcTextureType.BEARD, true); - register(registry, Hairs.Beard.VERY_LONG, NpcTextureType.BEARD, true); - register(registry, Hairs.Beard.SEMI_LONG, NpcTextureType.BEARD, true); - } - - public static void bootstrapClothings(Registerable registry) { - register(registry, Clothing.FULL_TOGA, NpcTextureType.CLOTHING); - register(registry, Clothing.ROBE, NpcTextureType.CLOTHING); - register(registry, Clothing.SKIRT, NpcTextureType.CLOTHING); - register(registry, Clothing.SKIRT_WITH_STROPHIUM, NpcTextureType.CLOTHING); - register(registry, Clothing.TOGA, NpcTextureType.CLOTHING); - register(registry, Clothing.PANTS, NpcTextureType.CLOTHING); - register(registry, Clothing.DWARVEN_GARMENT, NpcTextureType.CLOTHING); - register(registry, Clothing.DWARVEN_GARMENT_WITH_PANTS, NpcTextureType.CLOTHING); - register(registry, Clothing.THONG, NpcTextureType.CLOTHING); - } - - private static void register(Registerable registry, RegistryKey key, NpcTextureType type) { - NpcTexturePattern pattern = new NpcTexturePattern(key.getValue(), type, false); - register(registry, key, pattern, getKey(type)); - } - private static void register(Registerable registry, RegistryKey key, NpcTextureType type, boolean hasAddon) { - NpcTexturePattern pattern = new NpcTexturePattern(key.getValue(), type, hasAddon); - register(registry, key, pattern, getKey(type)); - } - - private static RegistryKey of(String id, NpcTextureType type) { - return RegistryKey.of(getKey(type), IdentifierUtil.create(id)); - } - - private static RegistryKey> ofRegistry(String id) { - return RegistryKey.ofRegistry(IdentifierUtil.create(id)); - } - - public static void register() { - MiddleEarth.LOGGER.logDebugMsg("Registering Npc Texture Patterns for " + MiddleEarth.MOD_ID); - DynamicRegistries.registerSynced(Keys.SKIN_KEY, NpcTexturePattern.CODEC); - DynamicRegistries.registerSynced(Keys.EYE_KEY, NpcTexturePattern.CODEC); - DynamicRegistries.registerSynced(Keys.HAIR_KEY, NpcTexturePattern.CODEC); - DynamicRegistries.registerSynced(Keys.CLOTHING_KEY, NpcTexturePattern.CODEC); - } - - private static void register(Registerable registerable, RegistryKey registryKey, NpcTexturePattern content, RegistryKey> registryRegistryKey) { - String name = registryKey.getValue().getPath(); - RegistryKey key = RegistryKey.of(registryRegistryKey,Identifier.of(MiddleEarth.MOD_ID,name)); - registerable.register(key, content); - } - - public static RegistryKey> getKey(NpcTextureType category){ - return switch (category) { - case NpcTextureType.SKIN, NpcTextureType.BODY, NpcTextureType.HEAD, NpcTextureType.SCAR, NpcTextureType.EAR, NpcTextureType.NOSE -> Keys.SKIN_KEY; - case NpcTextureType.EYE -> Keys.EYE_KEY; - case NpcTextureType.HAIR, NpcTextureType.EYEBROW, NpcTextureType.BEARD -> Keys.HAIR_KEY; - case NpcTextureType.CLOTHING -> Keys.CLOTHING_KEY; - }; - } - - public static Optional> get(RegistryWrapper.WrapperLookup registries, NpcTextureType type, Identifier id) { - return registries.getOrThrow(getKey(type)).streamEntries().filter((pattern) -> - pattern.value().getCategory() == type && pattern.matchesId(id)).findFirst(); - } - -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/FactionsME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/FactionsME.java deleted file mode 100644 index 1ed477c66d..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/FactionsME.java +++ /dev/null @@ -1,81 +0,0 @@ -package net.sevenstars.middleearth.resources; - -import net.fabricmc.fabric.api.event.registry.DynamicRegistries; -import net.minecraft.registry.Registerable; -import net.minecraft.registry.Registry; -import net.minecraft.registry.RegistryEntryLookup; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.entry.RegistryEntry; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.datageneration.content.TranslationEntries; -import net.sevenstars.middleearth.resources.datas.factions.Faction; -import net.sevenstars.middleearth.resources.datas.factions.pools.*; - -import java.util.Optional; - -/** - * Middle-earth mod faction registry
- * To fetch a faction during runtime, use : {@link net.sevenstars.middleearth.resources.datas.factions.FactionLookup#getFactionById}
- * Datadriven content, do not use during runtime! - *
- */ -public class FactionsME { - public final static String PATH = "factions"; - public static final RegistryKey> KEY = RegistryKey.ofRegistry(Identifier.of(MiddleEarth.MOD_ID, PATH)); - - public final static RegistryKey GONDOR = of("gondor"); - public final static RegistryKey ROHAN = of("rohan"); - public final static RegistryKey DALE = of("dale"); - public final static RegistryKey LONGBEARDS = of("longbeards"); - public final static RegistryKey LONGBEARDS_EREBOR = of("longbeards.erebor"); - public final static RegistryKey LOTHLORIEN = of("lothlorien"); - public final static RegistryKey MORDOR = of("mordor"); - public final static RegistryKey MISTY_MOUNTAINS_GOBLINS = of("misty_mountains_goblins"); - public final static RegistryKey ISENGARD = of("isengard"); - public final static RegistryKey SHIRE = of("shire"); - public final static RegistryKey BRIGAND = of("brigand"); - - private static RegistryKey of(String name) { - return RegistryKey.of(KEY, Identifier.of(MiddleEarth.MOD_ID, name)); - } - - public static void register(){ - MiddleEarth.LOGGER.logDebugMsg("Registering Dynamic Factions for " + MiddleEarth.MOD_ID); - DynamicRegistries.registerSynced(KEY, Faction.CODEC); - } - - public static void bootstrap(Registerable context) { - RegistryEntryLookup factionRegistryEntryLookup = context.getRegistryLookup(KEY); - register(context, factionRegistryEntryLookup, GONDOR, GondorFactionPool.GONDOR); - register(context, factionRegistryEntryLookup, ROHAN, RohanFactionPool.ROHAN); - register(context, factionRegistryEntryLookup, DALE, DaleFactionPool.DALE); - register(context, factionRegistryEntryLookup, LONGBEARDS, LongbeardsFactionPool.LONGBEARDS); - register(context, factionRegistryEntryLookup, LONGBEARDS_EREBOR, LongbeardsFactionPool.EREBOR); - register(context, factionRegistryEntryLookup, LOTHLORIEN, LothlorienFactionPool.LOTHLORIEN); - register(context, factionRegistryEntryLookup, MORDOR, MordorFactionPool.MORDOR); - register(context, factionRegistryEntryLookup, MISTY_MOUNTAINS_GOBLINS, MistyMountainsGoblinsFactionPool.MISTY_MOUNTAINS_GOBLINS); - register(context, factionRegistryEntryLookup, ISENGARD, IsengardFactionPool.ISENGARD); - register(context, factionRegistryEntryLookup, SHIRE, ShireFactionPool.SHIRE); - register(context, factionRegistryEntryLookup, BRIGAND, BrigandFactionPool.BRIGAND); - } - - private static Faction register(Registerable context, RegistryEntryLookup factionRegistryEntryLookup, RegistryKey key, Faction faction) { - Optional> optionalFaction = factionRegistryEntryLookup.getOptional(key); - optionalFaction.ifPresent(biomeReference -> context.register(key, faction)); - - TranslationEntries.factionEntries.add(faction.getName()); - if (faction.getSpawnData() != null){ - faction.getSpawnData().getSpawnList().forEach(spawnData -> { - TranslationEntries.spawnEntries.add(spawnData.getIdentifier().getPath()); - }); - } - - return faction; - } - - public static String getName(RegistryKey factionRegistryKey) { - return factionRegistryKey.getValue().getPath(); - } -} - diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/NpcME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/NpcME.java deleted file mode 100644 index 904a91f952..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/NpcME.java +++ /dev/null @@ -1,151 +0,0 @@ -package net.sevenstars.middleearth.resources; - -import net.fabricmc.fabric.api.event.registry.DynamicRegistries; -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.entity.attribute.EntityAttributes; -import net.minecraft.registry.Registerable; -import net.minecraft.registry.Registry; -import net.minecraft.registry.RegistryEntryLookup; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.entry.RegistryEntry; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.item.EquipmentItemsME; -import net.sevenstars.middleearth.resources.datas.attributes.AttributePool; -import net.sevenstars.middleearth.resources.datas.attributes.AttributePoolElement; -import net.sevenstars.middleearth.resources.datas.npcs.NpcData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearItemData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearSlotData; -import net.sevenstars.middleearth.resources.datas.npcs.pools.*; -import net.sevenstars.middleearth.resources.datas.races.data.EntityCategory; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Optional; - -/** - * Middle-earth mod npc registry
- * Datadriven content, do not use during runtime! - *
- */ -public class NpcME { - public final static String PATH = "npcs"; - public static final RegistryKey> KEY = RegistryKey.ofRegistry(Identifier.of(MiddleEarth.MOD_ID, PATH)); - public static final HashMap COMMON_NPC_ATTRIBUTES = new HashMap<>(){{ - put(EntityCategory.SHARED, new AttributePool().addElement( - AttributePoolElement.create(EntityAttributes.MOVEMENT_SPEED, 0.35, 0.45) - )); - }}; - public static ArrayList> allNpcDatas; - // [GENERIC] - public final static NpcData HUMAN_CIVILIAN; - public final static NpcData DWARF_CIVILIAN; - public final static NpcData ELF_CIVILIAN; - public final static NpcData HOBBIT_CIVILIAN; - public final static NpcData ORC_CIVILIAN; - public final static NpcData URUK_CIVILIAN; - - public static void register(){ - MiddleEarth.LOGGER.logDebugMsg("Registering Dynamic Npcs for " + MiddleEarth.MOD_ID); - DynamicRegistries.registerSynced(KEY, NpcData.CODEC); - } - - public static void bootstrap(Registerable context) { - NpcME.allNpcDatas = new ArrayList<>(); - - RegistryEntryLookup npcRegistryEntryLookup = context.getRegistryLookup(KEY); - // [RACE / GENERIC] - register(context, npcRegistryEntryLookup, HUMAN_CIVILIAN); - register(context, npcRegistryEntryLookup, DWARF_CIVILIAN); - register(context, npcRegistryEntryLookup, ELF_CIVILIAN); - register(context, npcRegistryEntryLookup, HOBBIT_CIVILIAN); - register(context, npcRegistryEntryLookup, ORC_CIVILIAN); - register(context, npcRegistryEntryLookup, URUK_CIVILIAN); - - // [GONDOR] - registerAll(context, npcRegistryEntryLookup, GondorianNpcDataPool.fetchAll()); - // [ROHAN] - registerAll(context, npcRegistryEntryLookup, RohirricNpcDataPool.fetchAll()); - // [DALE] - registerAll(context, npcRegistryEntryLookup, DalishNpcDataPool.fetchAll()); - // [LONGBEARDS] - [EREBOR] - registerAll(context, npcRegistryEntryLookup, EreborNpcDataPool.fetchAll()); - // [LOTHLORIEN] - registerAll(context, npcRegistryEntryLookup, LorienNpcDataPool.fetchAll()); - // [MORDOR] - registerAll(context, npcRegistryEntryLookup, MordorNpcDataPool.fetchAll()); - // [MISTY MOUNTAINS GOBLINS] - registerAll(context, npcRegistryEntryLookup, MistyMountainsGoblinsNpcDataPool.fetchAll()); - // [ISENGARD] - registerAll(context, npcRegistryEntryLookup, IsengardNpcDataPool.fetchAll()); - // [SHIRE] - registerAll(context, npcRegistryEntryLookup, ShireNpcDataPool.fetchAll()); - // [BRIGAND] - registerAll(context, npcRegistryEntryLookup, BrigandNpcDataPool.fetchAll()); - } - - private static void registerAll(Registerable context, RegistryEntryLookup npcRegistryEntryLookup, List npcDatas) { - for(NpcData data : npcDatas){ - RegistryKey registered = register(context, npcRegistryEntryLookup, data); - NpcME.allNpcDatas.add(registered); - } - } - - public static RegistryKey register(Registerable context, RegistryEntryLookup npcRegistryEntryLookup, NpcData npcData) { - RegistryKey npcRegistryKey = of(npcData.getId().getPath()); - String name = npcRegistryKey.getValue().getPath(); - RegistryKey npcKey = RegistryKey.of(KEY, Identifier.of(MiddleEarth.MOD_ID,name)); - - Optional> optionalNpc = npcRegistryEntryLookup.getOptional(npcRegistryKey); - optionalNpc.ifPresent(npcReference -> context.register(npcKey, npcData)); - - return npcKey; - } - - private static RegistryKey of(String name) { - return RegistryKey.of(KEY, Identifier.of(MiddleEarth.MOD_ID, name)); - } - - static { - // region [GENERIC/TEMPORARY] - HUMAN_CIVILIAN = new NpcData(Identifier.of(MiddleEarth.MOD_ID, "human.civilian"), RacesME.HUMAN, FactionsME.GONDOR, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_SKULLCAP).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.STRAW_HAT).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.WOVEN_HAT).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.BYCOCKET).withWeight(1)) - .add(NpcGearItemData.create().withWeight(4)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.STURDY_BOOTS)) - .add(NpcGearItemData.create(EquipmentItemsME.WORK_SHOES).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.SHOES).withWeight(2)) - .add(NpcGearItemData.create().withWeight(3)) - ) - ), new HashMap<>()); - - DWARF_CIVILIAN = new NpcData(Identifier.of(MiddleEarth.MOD_ID, "dwarf.civilian"), RacesME.DWARF, FactionsME.GONDOR, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - ), new HashMap<>()); - - ELF_CIVILIAN = new NpcData(Identifier.of(MiddleEarth.MOD_ID, "elf.civilian"), RacesME.ELF, FactionsME.GONDOR, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - ), new HashMap<>()); - - HOBBIT_CIVILIAN = new NpcData(Identifier.of(MiddleEarth.MOD_ID, "hobbit.civilian"), RacesME.HOBBIT, FactionsME.GONDOR, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - ), new HashMap<>()); - - ORC_CIVILIAN = new NpcData(Identifier.of(MiddleEarth.MOD_ID, "orc.civilian"), RacesME.ORC, FactionsME.GONDOR, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - ), new HashMap<>()); - - URUK_CIVILIAN = new NpcData(Identifier.of(MiddleEarth.MOD_ID, "uruk.civilian"), RacesME.URUK, FactionsME.GONDOR, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - ), new HashMap<>()); - // endregion - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/NpcTextureDatasME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/NpcTextureDatasME.java deleted file mode 100644 index 0fa07ca590..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/NpcTextureDatasME.java +++ /dev/null @@ -1 +0,0 @@ -package net.sevenstars.middleearth.resources; import net.fabricmc.fabric.api.event.registry.DynamicRegistries; import net.minecraft.registry.Registerable; import net.minecraft.registry.Registry; import net.minecraft.registry.RegistryEntryLookup; import net.minecraft.registry.RegistryKey; import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.util.Identifier; import net.sevenstars.middleearth.MiddleEarth; import net.sevenstars.middleearth.resources.datas.npcs.data.NpcTextureData; import net.sevenstars.middleearth.resources.datas.races.data.EntityCategory; import net.sevenstars.middleearth.resources.datas.races.data.NpcTextureDataPreset; import net.sevenstars.middleearth.resources.datas.races.data.npctextures.NpcTextureMaterial; import net.sevenstars.middleearth.resources.datas.races.data.npctextures.NpcTextureType; import net.sevenstars.middleearth.utils.IdentifierUtil; import java.util.HashMap; import java.util.List; import java.util.Optional; import java.util.stream.Stream; public class NpcTextureDatasME { public final static String PATH = "npc_texture_datas"; public static final RegistryKey> KEY = RegistryKey.ofRegistry(Identifier.of(MiddleEarth.MOD_ID, PATH)); /* [GENERIC] */ public final static RegistryKey GENERIC_HUMAN = of("generic_human"); /* [LONGBEARDS.EREBOR] */ public final static RegistryKey LONGBEARDS_EREBOR_DWARF = of("longbeards_erebor_dwarf"); public final static RegistryKey LONGBEARDS_EREBOR_DWARF_MIGHTY = of("longbeards_erebor_dwarf_mighty"); /* [LOTHLORIEN] */ public final static RegistryKey LORIEN_ELF = of("lothlorien_elf"); /* [MORDOR] */ public final static RegistryKey MORDOR_ORC = of("mordor_orc"); public final static RegistryKey MORDOR_BLACK_URUK = of("mordor_black_uruk"); /* [HOBGOBLIN TRIBES] */ public final static RegistryKey HOBGOBLIN_TRIBES_GOBLIN = of("hobgoblin_tribes_goblin"); public final static RegistryKey HOBGOBLIN_TRIBES_HOBGOBLIN = of("hobgoblin_tribes_hobgoblin"); /* [ISENGARD] */ public final static RegistryKey ISENGARD_ORC = of("isengard_orc"); public final static RegistryKey ISENGARD_URUK_HAI = of("isengard_uruk_hai"); /* [WILD GOBLINS] */ public final static RegistryKey WILD_GOBLIN_GOBLIN = of("wild_goblin_goblin"); public final static RegistryKey WILD_GOBLIN_HOBGOBLIN = of("wild_goblin_hobgoblin"); public static void register(){ MiddleEarth.LOGGER.logDebugMsg("Registering Dynamic Npc Texture Data for " + MiddleEarth.MOD_ID); DynamicRegistries.registerSynced(KEY, NpcTextureData.CODEC); } public static void bootstrap(Registerable context) { RegistryEntryLookup npcTextureDataRegistryEntryLookup = context.getRegistryLookup(KEY); /* [GENERIC] */ register(context, npcTextureDataRegistryEntryLookup, GENERIC_HUMAN, Generic.GENERIC); /* [LONGBEARDS.EREBOR] */ register(context, npcTextureDataRegistryEntryLookup, LONGBEARDS_EREBOR_DWARF, LongbeardsErebor.GENERIC_DWARF); register(context, npcTextureDataRegistryEntryLookup, LONGBEARDS_EREBOR_DWARF_MIGHTY, LongbeardsErebor.MIGHTY_DWARF); /* [LOTHLORIEN] */ register(context, npcTextureDataRegistryEntryLookup, LORIEN_ELF, Lothlorien.GENERIC_ELF); /* [MORDOR] */ register(context, npcTextureDataRegistryEntryLookup, MORDOR_ORC, Mordor.GENERIC_ORC); register(context, npcTextureDataRegistryEntryLookup, MORDOR_BLACK_URUK, Mordor.GENERIC_URUK); /* [HOBGOBLIN TRIBES] */ register(context, npcTextureDataRegistryEntryLookup, HOBGOBLIN_TRIBES_GOBLIN, HobgoblinTribes.GENERIC_GOBLIN); register(context, npcTextureDataRegistryEntryLookup, HOBGOBLIN_TRIBES_HOBGOBLIN, HobgoblinTribes.GENERIC_HOBGOBLIN); /* [ISENGARD] */ register(context, npcTextureDataRegistryEntryLookup, ISENGARD_ORC, Isengard.GENERIC_ORC); register(context, npcTextureDataRegistryEntryLookup, ISENGARD_URUK_HAI, Isengard.GENERIC_URUK_HAI); /* [WILD GOBLINS] */ register(context, npcTextureDataRegistryEntryLookup, WILD_GOBLIN_GOBLIN, WildGoblin.GENERIC_GOBLIN); register(context, npcTextureDataRegistryEntryLookup, WILD_GOBLIN_HOBGOBLIN, WildGoblin.GENERIC_HOBGOBLIN); } public static RegistryKey register(Registerable context, RegistryEntryLookup npcTextureDataRegistryEntryLookup, RegistryKey npcTextureDataKey, NpcTextureData npcTextureData) { Optional> optionalNpcTextureDataReference = npcTextureDataRegistryEntryLookup.getOptional(npcTextureDataKey); optionalNpcTextureDataReference.ifPresent(biomeReference -> context.register(npcTextureDataKey, npcTextureData)); return npcTextureDataKey; } private static RegistryKey of(String name) { return RegistryKey.of(KEY, IdentifierUtil.create(name)); } private static final class UtilData { public static final List> DEFAULT_HAIR = List.of( CharacterMaterialsME.Hair.COLD_BLACK_COPPER, CharacterMaterialsME.Hair.COLD_BLACK_GOLD, CharacterMaterialsME.Hair.COLD_BLACK_SILVER, CharacterMaterialsME.Hair.COLD_BLACK_ALMANDINE, CharacterMaterialsME.Hair.BLACK_COPPER, CharacterMaterialsME.Hair.BLACK_GOLD, CharacterMaterialsME.Hair.BLACK_SILVER, CharacterMaterialsME.Hair.BLACK_ALMANDINE, CharacterMaterialsME.Hair.BROWN_COPPER, CharacterMaterialsME.Hair.BROWN_GOLD, CharacterMaterialsME.Hair.BROWN_SILVER, CharacterMaterialsME.Hair.BROWN_ALMANDINE, CharacterMaterialsME.Hair.DARK_BROWN_COPPER, CharacterMaterialsME.Hair.DARK_BROWN_GOLD, CharacterMaterialsME.Hair.DARK_BROWN_SILVER, CharacterMaterialsME.Hair.DARK_BROWN_ALMANDINE, CharacterMaterialsME.Hair.STRAW_COPPER, CharacterMaterialsME.Hair.STRAW_GOLD, CharacterMaterialsME.Hair.STRAW_SILVER, CharacterMaterialsME.Hair.STRAW_ALMANDINE, CharacterMaterialsME.Hair.STRAW_BEADS, CharacterMaterialsME.Hair.GINGER_COPPER, CharacterMaterialsME.Hair.GINGER_GOLD, CharacterMaterialsME.Hair.GINGER_SILVER, CharacterMaterialsME.Hair.GINGER_ALMANDINE, CharacterMaterialsME.Hair.GINGER_BEADS, CharacterMaterialsME.Hair.WHITE_COPPER, CharacterMaterialsME.Hair.WHITE_GOLD, CharacterMaterialsME.Hair.WHITE_ALMANDINE, CharacterMaterialsME.Hair.WHITE_BEADS, CharacterMaterialsME.Hair.GRAY_COPPER, CharacterMaterialsME.Hair.GRAY_GOLD, CharacterMaterialsME.Hair.GRAY_ALMANDINE, CharacterMaterialsME.Hair.GRAY_BEADS ); } private static final class Generic{ public static NpcTextureData GENERIC = new NpcTextureData( new HashMap<>(){{ put( EntityCategory.SHARED, List.of(new NpcTextureDataPreset() .withMaterials(NpcTextureType.SKIN, List.of( CharacterMaterialsME.Skin.TAN, CharacterMaterialsME.Skin.TAN_DESATURATED, CharacterMaterialsME.Skin.PALE, CharacterMaterialsME.Skin.BEIGE )) .withMaterials(NpcTextureType.EYE, List.of( CharacterMaterialsME.Eye.BLUE, CharacterMaterialsME.Eye.GREEN, CharacterMaterialsME.Eye.DARK_GREEN, CharacterMaterialsME.Eye.NAVY, CharacterMaterialsME.Eye.BROWN )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsME.Eyes.Eye.COMMON )) .withMaterials(NpcTextureType.HAIR, UtilData.DEFAULT_HAIR) .withPatterns(NpcTextureType.EYEBROW, List.of( CharacterPatternsME.Hairs.Eyebrow.UNI, CharacterPatternsME.Hairs.Eyebrow.BASIC, CharacterPatternsME.Hairs.Eyebrow.SHORT )) .withMaterials(NpcTextureType.CLOTHING, List.of( CharacterMaterialsME.Clothing.WHITE, CharacterMaterialsME.Clothing.BROWN )) .withPatterns(NpcTextureType.CLOTHING, List.of( CharacterPatternsME.Clothing.TOGA, CharacterPatternsME.Clothing.FULL_TOGA, CharacterPatternsME.Clothing.SKIRT )) ) ); put( EntityCategory.MALE, List.of(new NpcTextureDataPreset() .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsME.Skins.Body.MUSCULAR )) .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsME.Skins.Head.MALE )) .withPatterns(NpcTextureType.EYEBROW, List.of( CharacterPatternsME.Hairs.Eyebrow.UNI, CharacterPatternsME.Hairs.Eyebrow.BASIC, CharacterPatternsME.Hairs.Eyebrow.SHORT )) .withPatterns(NpcTextureType.HAIR, Stream.of( CharacterPatternsME.Hairs.Hair.BOWL, CharacterPatternsME.Hairs.Hair.BALD_SIDES, CharacterPatternsME.Hairs.Hair.SHORT, CharacterPatternsME.Hairs.Hair.TOP_BALDING, CharacterPatternsME.Hairs.Hair.SIDE_BALDING, null).toList() ) .withPatterns(NpcTextureType.BEARD, Stream.of( CharacterPatternsME.Hairs.Beard.CLEAN, CharacterPatternsME.Hairs.Beard.SHORT, CharacterPatternsME.Hairs.Beard.SINGLE, CharacterPatternsME.Hairs.Beard.UNCLEAN_ORNAMENTED, null).toList()) ) ); put( EntityCategory.FEMALE, List.of( new NpcTextureDataPreset() .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsME.Skins.Body.FEMALE )) .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsME.Skins.Head.FEMALE )) .withPatterns(NpcTextureType.EYEBROW, List.of( CharacterPatternsME.Hairs.Eyebrow.UNI, CharacterPatternsME.Hairs.Eyebrow.BASIC, CharacterPatternsME.Hairs.Eyebrow.SHORT )) .withPatterns(NpcTextureType.HAIR, Stream.of( CharacterPatternsME.Hairs.Hair.LONG, CharacterPatternsME.Hairs.Hair.SEMI_LONG, CharacterPatternsME.Hairs.Hair.VERY_LONG, null).toList() ) .withPatterns(NpcTextureType.CLOTHING, List.of(CharacterPatternsME.Clothing.ROBE)) ) ); }} ); } /* [Factions] */ private static final class LongbeardsErebor{ private static final NpcTextureDataPreset SHARED_PRESET = new NpcTextureDataPreset() .withMaterials(NpcTextureType.SKIN, List.of( CharacterMaterialsME.Skin.PALE, CharacterMaterialsME.Skin.BEIGE )) .withPatterns(NpcTextureType.NOSE, List.of( CharacterPatternsME.Skins.Nose.CUBE )) .withPatterns(NpcTextureType.EAR, List.of( CharacterPatternsME.Skins.Ear.SQUARE, CharacterPatternsME.Skins.Ear.NORMAL )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsME.Eyes.Eye.COMMON )) .withMaterials(NpcTextureType.EYE, List.of( CharacterMaterialsME.Eye.BLUE, CharacterMaterialsME.Eye.GREEN, CharacterMaterialsME.Eye.DARK_GREEN, CharacterMaterialsME.Eye.BLACK, CharacterMaterialsME.Eye.NAVY, CharacterMaterialsME.Eye.BROWN )) .withMaterials(NpcTextureType.HAIR, List.of( CharacterMaterialsME.Hair.COLD_BLACK_COPPER, CharacterMaterialsME.Hair.BLACK_COPPER, CharacterMaterialsME.Hair.DARK_BROWN_COPPER, CharacterMaterialsME.Hair.BROWN_COPPER, CharacterMaterialsME.Hair.BROWN_BEADS, CharacterMaterialsME.Hair.GRAY_BEADS, CharacterMaterialsME.Hair.GRAY_COPPER )) .withPatterns(NpcTextureType.EYEBROW, List.of( CharacterPatternsME.Hairs.Eyebrow.BASIC, CharacterPatternsME.Hairs.Eyebrow.SHORT, CharacterPatternsME.Hairs.Eyebrow.THICK, CharacterPatternsME.Hairs.Eyebrow.LONG )) .withPatterns(NpcTextureType.HAIR, Stream.of( CharacterPatternsME.Hairs.Hair.PONYTAIL_SHORT_ORNAMENTED, CharacterPatternsME.Hairs.Hair.SHARP ).toList() ).withPatterns(NpcTextureType.BEARD, List.of( CharacterPatternsME.Hairs.Beard.UNCLEAN_ORNAMENTED, CharacterPatternsME.Hairs.Beard.DUAL_LARGE_ORNAMENTED, CharacterPatternsME.Hairs.Beard.DUAL_ORNAMENTED, CharacterPatternsME.Hairs.Beard.LONG_SINGLE_ORNAMENTED )) .withMaterials(NpcTextureType.CLOTHING, List.of( CharacterMaterialsME.Clothing.BLUE_AND_COPPER, CharacterMaterialsME.Clothing.BROWN )) .withPatterns(NpcTextureType.CLOTHING, List.of( CharacterPatternsME.Clothing.DWARVEN_GARMENT_WITH_PANTS ));; private static final NpcTextureDataPreset MALE_PRESET = new NpcTextureDataPreset() .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsME.Skins.Head.MALE )) .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsME.Skins.Body.MUSCULAR, CharacterPatternsME.Skins.Body.FAT )) .withPatterns(NpcTextureType.EYEBROW, List.of( CharacterPatternsME.Hairs.Eyebrow.UNI )) .withPatterns(NpcTextureType.HAIR, Stream.of( CharacterPatternsME.Hairs.Hair.SHORT, CharacterPatternsME.Hairs.Hair.BALD_SIDES, CharacterPatternsME.Hairs.Hair.TOP_BALDING, CharacterPatternsME.Hairs.Hair.SIDE_BALDING, null, null).toList() ) .withPatterns(NpcTextureType.BEARD, List.of( CharacterPatternsME.Hairs.Beard.BROAD, CharacterPatternsME.Hairs.Beard.LARGE, CharacterPatternsME.Hairs.Beard.VERY_LARGE_MUSTACHE, CharacterPatternsME.Hairs.Beard.VERY_LONG )) .withPatterns(NpcTextureType.CLOTHING, List.of( CharacterPatternsME.Clothing.PANTS )); private static final NpcTextureDataPreset FEMALE_PRESET = new NpcTextureDataPreset() .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsME.Skins.Head.FEMALE )) .withPatterns(NpcTextureType.CLOTHING, List.of( CharacterPatternsME.Clothing.DWARVEN_GARMENT_WITH_PANTS )) .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsME.Skins.Body.FEMALE, CharacterPatternsME.Skins.Body.SLIM, CharacterPatternsME.Skins.Body.FAT )); private static final NpcTextureDataPreset MIGHTY_SHARED_PRESET = SHARED_PRESET.copy() .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsME.Skins.Body.MUSCULAR, CharacterPatternsME.Skins.Body.FAT )) .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsME.Skins.Head.MALE )) .clearMaterials(NpcTextureType.HAIR) .withMaterials(NpcTextureType.HAIR, List.of( CharacterMaterialsME.Hair.COLD_BLACK_GOLD, CharacterMaterialsME.Hair.BLACK_GOLD, CharacterMaterialsME.Hair.DARK_BROWN_GOLD, CharacterMaterialsME.Hair.BROWN_GOLD, CharacterMaterialsME.Hair.GRAY_GOLD, CharacterMaterialsME.Hair.WHITE_GOLD )) .clearPatterns(NpcTextureType.BEARD) .withPatterns(NpcTextureType.BEARD, List.of( CharacterPatternsME.Hairs.Beard.CLEAN, CharacterPatternsME.Hairs.Beard.VERY_LONG, CharacterPatternsME.Hairs.Beard.VERY_BROAD, CharacterPatternsME.Hairs.Beard.DUAL_LARGE_ORNAMENTED, CharacterPatternsME.Hairs.Beard.VERY_LARGE_MUSTACHE, CharacterPatternsME.Hairs.Beard.FANCY_MUSTACHE_ORNAMENTED, CharacterPatternsME.Hairs.Beard.LONG_BRAIDS_ORNAMENTED, CharacterPatternsME.Hairs.Beard.CHUNKY_BRAIDS )) .withPatterns(NpcTextureType.CLOTHING, List.of( CharacterPatternsME.Clothing.TOGA, CharacterPatternsME.Clothing.FULL_TOGA, CharacterPatternsME.Clothing.SKIRT )); public static NpcTextureData GENERIC_DWARF = new NpcTextureData( new HashMap<>(){{ put(EntityCategory.SHARED, List.of(SHARED_PRESET)); put(EntityCategory.MALE, List.of(MALE_PRESET)); put(EntityCategory.FEMALE, List.of(FEMALE_PRESET)); }} ); public static NpcTextureData MIGHTY_DWARF = new NpcTextureData( new HashMap<>(){{ put(EntityCategory.SHARED, List.of(MIGHTY_SHARED_PRESET)); put(EntityCategory.MALE, List.of( new NpcTextureDataPreset() .withWeight(5), new NpcTextureDataPreset() .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsME.Eyes.Eye.BLIND_LEFT )) .withPatterns(NpcTextureType.SCAR, List.of( CharacterPatternsME.Skins.Scar.EYE_LEFT )), new NpcTextureDataPreset() .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsME.Eyes.Eye.BLIND_RIGHT )) .withPatterns(NpcTextureType.SCAR, List.of( CharacterPatternsME.Skins.Scar.EYE_RIGHT )) )); }} ); } private static final class Lothlorien{ public static NpcTextureData GENERIC_ELF = new NpcTextureData( new HashMap<>(){{ put( EntityCategory.SHARED, List.of(new NpcTextureDataPreset() .withMaterials(NpcTextureType.SKIN, List.of( CharacterMaterialsME.Skin.TAN, CharacterMaterialsME.Skin.PALE, CharacterMaterialsME.Skin.BEIGE )) .withPatterns(NpcTextureType.EAR, List.of( CharacterPatternsME.Skins.Ear.SMALL_POINTY, CharacterPatternsME.Skins.Ear.POINTY, CharacterPatternsME.Skins.Ear.SMALL )) .withMaterials(NpcTextureType.EYE, List.of( CharacterMaterialsME.Eye.BLUE, CharacterMaterialsME.Eye.GREEN )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsME.Eyes.Eye.COMMON )) .withMaterials(NpcTextureType.HAIR, List.of( CharacterMaterialsME.Hair.BLONDE_BEADS, CharacterMaterialsME.Hair.BLONDE_SILVER, CharacterMaterialsME.Hair.BLONDE_COPPER, CharacterMaterialsME.Hair.DIRTY_BLONDE_BEADS, CharacterMaterialsME.Hair.DIRTY_BLONDE_SILVER, CharacterMaterialsME.Hair.DIRTY_BLONDE_COPPER, CharacterMaterialsME.Hair.STRAW_BEADS, CharacterMaterialsME.Hair.STRAW_SILVER, CharacterMaterialsME.Hair.STRAW_COPPER )) .withPatterns(NpcTextureType.EYEBROW, List.of( CharacterPatternsME.Hairs.Eyebrow.BASIC, CharacterPatternsME.Hairs.Eyebrow.SHORT )) .withMaterials(NpcTextureType.CLOTHING, List.of( CharacterMaterialsME.Clothing.WHITE )) ) ); put( EntityCategory.MALE, List.of(new NpcTextureDataPreset() .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsME.Skins.Body.MUSCULAR )) .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsME.Skins.Head.MALE )) .withPatterns(NpcTextureType.HAIR, List.of( CharacterPatternsME.Hairs.Hair.SHORT, CharacterPatternsME.Hairs.Hair.SHARP, CharacterPatternsME.Hairs.Hair.FLAT_LONG, CharacterPatternsME.Hairs.Hair.SEMI_LONG, CharacterPatternsME.Hairs.Hair.UNCUT )) .withPatterns(NpcTextureType.CLOTHING, List.of( CharacterPatternsME.Clothing.TOGA, CharacterPatternsME.Clothing.SKIRT, CharacterPatternsME.Clothing.PANTS )) ) ); put( EntityCategory.FEMALE, List.of( new NpcTextureDataPreset() .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsME.Skins.Body.FEMALE )) .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsME.Skins.Head.FEMALE )) .withPatterns(NpcTextureType.HAIR, List.of( CharacterPatternsME.Hairs.Hair.UNCUT, CharacterPatternsME.Hairs.Hair.LONG, CharacterPatternsME.Hairs.Hair.SEMI_LONG, CharacterPatternsME.Hairs.Hair.VERY_LONG) ) .withPatterns(NpcTextureType.CLOTHING, List.of( CharacterPatternsME.Clothing.FULL_TOGA, CharacterPatternsME.Clothing.ROBE )) ) ); }} ); } private static final class Mordor{ private static final NpcTextureDataPreset SHARED_PRESET = new NpcTextureDataPreset() .withMaterials(NpcTextureType.SKIN, List.of( CharacterMaterialsME.Skin.GREY, CharacterMaterialsME.Skin.LIGHT_GREY, CharacterMaterialsME.Skin.RED, CharacterMaterialsME.Skin.RUST, CharacterMaterialsME.Skin.WINE )) .withMaterials(NpcTextureType.EYE, List.of( CharacterMaterialsME.Eye.RED, CharacterMaterialsME.Eye.PALE, CharacterMaterialsME.Eye.YELLOW )) .withEmissiveEyes(true) .withMaterials(NpcTextureType.HAIR, List.of( CharacterMaterialsME.Hair.GREASY_ALMANDINE, CharacterMaterialsME.Hair.GREASY_BEADS, CharacterMaterialsME.Hair.DIRTY_BROWN_ALMANDINE, CharacterMaterialsME.Hair.DIRTY_BROWN_BEADS )) .withPatterns(NpcTextureType.HAIR, List.of( CharacterPatternsME.Hairs.Hair.DIRTY_MOP, CharacterPatternsME.Hairs.Hair.BALD_DREADLOCKS_ORNAMENTED, CharacterPatternsME.Hairs.Hair.BALD_SMALL_DREADLOCKS, CharacterPatternsME.Hairs.Hair.PONYTAIL_SHORT_ORNAMENTED, CharacterPatternsME.Hairs.Hair.TOP_BALDING, CharacterPatternsME.Hairs.Hair.UNCUT, CharacterPatternsME.Hairs.Hair.SHORT, CharacterPatternsME.Hairs.Hair.BALD_SIDES )) .withPatterns(NpcTextureType.CLOTHING, List.of( CharacterPatternsME.Clothing.PANTS )) ; private static final NpcTextureDataPreset ORC_PRESET = new NpcTextureDataPreset() .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsME.Skins.Body.SKIN_TO_BONE, CharacterPatternsME.Skins.Body.SLIM )) .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsME.Skins.Head.GOBLIN, CharacterPatternsME.Skins.Head.GOBLIN_SMALL, CharacterPatternsME.Skins.Head.GOBLIN_SMALL_THICK_BROW, CharacterPatternsME.Skins.Head.GOBLIN_SMALL_VERY_WIDE, CharacterPatternsME.Skins.Head.GOBLIN_SMALL_WISE )) .withPatterns(NpcTextureType.EAR, List.of( CharacterPatternsME.Skins.Ear.WIDE_POINTY, CharacterPatternsME.Skins.Ear.SQUARE_POINTY, CharacterPatternsME.Skins.Ear.LARGE_POINTY, CharacterPatternsME.Skins.Ear.SMALL_POINTY )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsME.Eyes.Eye.COMMON, CharacterPatternsME.Eyes.Eye.SMALL_LOW_WIDE, CharacterPatternsME.Eyes.Eye.SMALL )) .withPatterns(NpcTextureType.CLOTHING, List.of( CharacterPatternsME.Clothing.THONG )) .withMaterials(NpcTextureType.CLOTHING, List.of( CharacterMaterialsME.Clothing.BROWN, CharacterMaterialsME.Clothing.ROT_GREEN, CharacterMaterialsME.Clothing.GRAY )); private static final NpcTextureDataPreset URUK_PRESET_A = new NpcTextureDataPreset() .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsME.Skins.Head.URUK_DUMB )) .withPatterns(NpcTextureType.EAR, List.of( CharacterPatternsME.Skins.Ear.SQUARE, CharacterPatternsME.Skins.Ear.NORMAL )) .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsME.Skins.Body.MUSCULAR )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsME.Eyes.Eye.SMALL_WIDE )); private static final NpcTextureDataPreset URUK_PRESET_B = new NpcTextureDataPreset() .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsME.Skins.Head.URUK_TALL_DUMB )) .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsME.Skins.Body.MUSCULAR )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsME.Eyes.Eye.SMALL_HIGH_WIDE )); public static NpcTextureData GENERIC_ORC = new NpcTextureData( new HashMap<>(){{ put(EntityCategory.SHARED, List.of(SHARED_PRESET)); put(EntityCategory.MALE, List.of(ORC_PRESET)); }} ); public static NpcTextureData GENERIC_URUK = new NpcTextureData( new HashMap<>(){{ put(EntityCategory.SHARED, List.of(SHARED_PRESET)); put(EntityCategory.MALE, List.of(URUK_PRESET_A, URUK_PRESET_B)); }} ); } private static final class HobgoblinTribes{ private static final NpcTextureDataPreset SHARED_PRESET = new NpcTextureDataPreset() .withMaterials(NpcTextureType.SKIN, List.of( CharacterMaterialsME.Skin.LIGHT_GREY, CharacterMaterialsME.Skin.PINK, CharacterMaterialsME.Skin.PALE_WHITE )) .withMaterials(NpcTextureType.EYE, List.of( CharacterMaterialsME.Eye.RED, CharacterMaterialsME.Eye.YELLOW )) .withEmissiveEyes(true) .withMaterials(NpcTextureType.HAIR, List.of( CharacterMaterialsME.Hair.GREASY_ALMANDINE, CharacterMaterialsME.Hair.GREASY_BEADS, CharacterMaterialsME.Hair.DIRTY_BROWN_ALMANDINE, CharacterMaterialsME.Hair.DIRTY_BROWN_BEADS )) .withPatterns(NpcTextureType.HAIR, List.of( CharacterPatternsME.Hairs.Hair.DIRTY_MOP, CharacterPatternsME.Hairs.Hair.BALD_DREADLOCKS_ORNAMENTED, CharacterPatternsME.Hairs.Hair.BALD_SMALL_DREADLOCKS, CharacterPatternsME.Hairs.Hair.PONYTAIL_SHORT_ORNAMENTED, CharacterPatternsME.Hairs.Hair.TOP_BALDING, CharacterPatternsME.Hairs.Hair.UNCUT, CharacterPatternsME.Hairs.Hair.SHORT, CharacterPatternsME.Hairs.Hair.BALD_SIDES )) .withPatterns(NpcTextureType.CLOTHING, List.of( CharacterPatternsME.Clothing.PANTS )) ; private static final NpcTextureDataPreset GOBLIN_PRESET = new NpcTextureDataPreset() .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsME.Skins.Body.SKIN_TO_BONE, CharacterPatternsME.Skins.Body.SLIM )) .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsME.Skins.Head.GOBLIN, CharacterPatternsME.Skins.Head.GOBLIN_SMALL, CharacterPatternsME.Skins.Head.GOBLIN_SMALL_THICK_BROW, CharacterPatternsME.Skins.Head.GOBLIN_SMALL_VERY_WIDE, CharacterPatternsME.Skins.Head.GOBLIN_SMALL_WISE )) .withPatterns(NpcTextureType.EAR, List.of( CharacterPatternsME.Skins.Ear.WIDE_POINTY, CharacterPatternsME.Skins.Ear.SQUARE_POINTY, CharacterPatternsME.Skins.Ear.LARGE_POINTY, CharacterPatternsME.Skins.Ear.SMALL_POINTY )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsME.Eyes.Eye.COMMON, CharacterPatternsME.Eyes.Eye.SMALL_LOW_WIDE, CharacterPatternsME.Eyes.Eye.SMALL )) .withPatterns(NpcTextureType.CLOTHING, List.of( CharacterPatternsME.Clothing.THONG )) .withMaterials(NpcTextureType.CLOTHING, List.of( CharacterMaterialsME.Clothing.BROWN, CharacterMaterialsME.Clothing.ROT_GREEN )); private static final NpcTextureDataPreset HOBGOBLIN_PRESET_A = new NpcTextureDataPreset() .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsME.Skins.Head.URUK_DUMB )) .withPatterns(NpcTextureType.EAR, List.of( CharacterPatternsME.Skins.Ear.SQUARE, CharacterPatternsME.Skins.Ear.NORMAL )) .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsME.Skins.Body.MUSCULAR )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsME.Eyes.Eye.SMALL_WIDE )); private static final NpcTextureDataPreset HOBGOBLIN_PRESET_B = new NpcTextureDataPreset() .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsME.Skins.Head.URUK_TALL_DUMB )) .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsME.Skins.Body.MUSCULAR )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsME.Eyes.Eye.SMALL_HIGH_WIDE )); public static NpcTextureData GENERIC_GOBLIN = new NpcTextureData( new HashMap<>(){{ put(EntityCategory.SHARED, List.of(SHARED_PRESET)); put(EntityCategory.MALE, List.of(GOBLIN_PRESET)); }} ); public static NpcTextureData GENERIC_HOBGOBLIN = new NpcTextureData( new HashMap<>(){{ put(EntityCategory.SHARED, List.of(SHARED_PRESET)); put(EntityCategory.MALE, List.of(HOBGOBLIN_PRESET_A, HOBGOBLIN_PRESET_B)); }} ); } private static final class Isengard{ private static final NpcTextureDataPreset SHARED_PRESET = new NpcTextureDataPreset() .withMaterials(NpcTextureType.SKIN, List.of( CharacterMaterialsME.Skin.BROWN, CharacterMaterialsME.Skin.DARK_PINK, CharacterMaterialsME.Skin.RED, CharacterMaterialsME.Skin.RUST, CharacterMaterialsME.Skin.SLIGHT_BROWN, CharacterMaterialsME.Skin.WINE )) .withMaterials(NpcTextureType.EYE, List.of( CharacterMaterialsME.Eye.YELLOW )) .withEmissiveEyes(true) .withMaterials(NpcTextureType.HAIR, List.of( CharacterMaterialsME.Hair.GREASY_ALMANDINE, CharacterMaterialsME.Hair.GREASY_BEADS, CharacterMaterialsME.Hair.DIRTY_BROWN_ALMANDINE, CharacterMaterialsME.Hair.DIRTY_BROWN_BEADS )) .withPatterns(NpcTextureType.HAIR, List.of( CharacterPatternsME.Hairs.Hair.DIRTY_MOP, CharacterPatternsME.Hairs.Hair.BALD_DREADLOCKS_ORNAMENTED, CharacterPatternsME.Hairs.Hair.BALD_SMALL_DREADLOCKS, CharacterPatternsME.Hairs.Hair.PONYTAIL_SHORT_ORNAMENTED, CharacterPatternsME.Hairs.Hair.TOP_BALDING, CharacterPatternsME.Hairs.Hair.UNCUT, CharacterPatternsME.Hairs.Hair.SHORT, CharacterPatternsME.Hairs.Hair.BALD_SIDES )) .withPatterns(NpcTextureType.CLOTHING, List.of( CharacterPatternsME.Clothing.PANTS )); private static final NpcTextureDataPreset ORC_PRESET = new NpcTextureDataPreset() .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsME.Skins.Body.SKIN_TO_BONE, CharacterPatternsME.Skins.Body.SLIM )) .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsME.Skins.Head.GOBLIN, CharacterPatternsME.Skins.Head.GOBLIN_SMALL, CharacterPatternsME.Skins.Head.GOBLIN_SMALL_THICK_BROW, CharacterPatternsME.Skins.Head.GOBLIN_SMALL_VERY_WIDE, CharacterPatternsME.Skins.Head.GOBLIN_SMALL_WISE )) .withPatterns(NpcTextureType.EAR, List.of( CharacterPatternsME.Skins.Ear.WIDE_POINTY, CharacterPatternsME.Skins.Ear.SQUARE_POINTY, CharacterPatternsME.Skins.Ear.LARGE_POINTY, CharacterPatternsME.Skins.Ear.SMALL_POINTY )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsME.Eyes.Eye.COMMON, CharacterPatternsME.Eyes.Eye.SMALL_LOW_WIDE, CharacterPatternsME.Eyes.Eye.SMALL )) .withPatterns(NpcTextureType.CLOTHING, List.of( CharacterPatternsME.Clothing.THONG )) .withMaterials(NpcTextureType.CLOTHING, List.of( CharacterMaterialsME.Clothing.BROWN, CharacterMaterialsME.Clothing.ROT_GREEN )); private static final NpcTextureDataPreset URUK_HAI_PRESET_A = new NpcTextureDataPreset() .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsME.Skins.Head.URUK_DUMB )) .withPatterns(NpcTextureType.EAR, List.of( CharacterPatternsME.Skins.Ear.SQUARE, CharacterPatternsME.Skins.Ear.NORMAL )) .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsME.Skins.Body.MUSCULAR )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsME.Eyes.Eye.SMALL_WIDE )); private static final NpcTextureDataPreset URUK_HAI_PRESET_B = new NpcTextureDataPreset() .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsME.Skins.Head.URUK_TALL_DUMB )) .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsME.Skins.Body.MUSCULAR )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsME.Eyes.Eye.SMALL_HIGH_WIDE )); public static NpcTextureData GENERIC_ORC = new NpcTextureData( new HashMap<>(){{ put(EntityCategory.SHARED, List.of(SHARED_PRESET)); put(EntityCategory.MALE, List.of(ORC_PRESET)); }} ); public static NpcTextureData GENERIC_URUK_HAI = new NpcTextureData( new HashMap<>(){{ put(EntityCategory.SHARED, List.of(SHARED_PRESET)); put(EntityCategory.MALE, List.of(URUK_HAI_PRESET_A, URUK_HAI_PRESET_B)); }} ); } private static final class WildGoblin { private static final NpcTextureDataPreset SHARED_PRESET = new NpcTextureDataPreset() .withMaterials(NpcTextureType.SKIN, List.of( CharacterMaterialsME.Skin.PALE, CharacterMaterialsME.Skin.PINK, CharacterMaterialsME.Skin.TAN_DESATURATED, CharacterMaterialsME.Skin.OLIVE )) .withMaterials(NpcTextureType.EYE, List.of( CharacterMaterialsME.Eye.RED )) .withEmissiveEyes(true) .withMaterials(NpcTextureType.HAIR, List.of( CharacterMaterialsME.Hair.GREASY_ALMANDINE, CharacterMaterialsME.Hair.GREASY_BEADS, CharacterMaterialsME.Hair.DIRTY_BROWN_ALMANDINE, CharacterMaterialsME.Hair.DIRTY_BROWN_BEADS )) .withPatterns(NpcTextureType.HAIR, List.of( CharacterPatternsME.Hairs.Hair.DIRTY_MOP, CharacterPatternsME.Hairs.Hair.BALD_DREADLOCKS_ORNAMENTED, CharacterPatternsME.Hairs.Hair.BALD_SMALL_DREADLOCKS, CharacterPatternsME.Hairs.Hair.PONYTAIL_SHORT_ORNAMENTED, CharacterPatternsME.Hairs.Hair.TOP_BALDING, CharacterPatternsME.Hairs.Hair.UNCUT, CharacterPatternsME.Hairs.Hair.SHORT, CharacterPatternsME.Hairs.Hair.BALD_SIDES )) .withPatterns(NpcTextureType.CLOTHING, List.of( CharacterPatternsME.Clothing.THONG )); private static final NpcTextureDataPreset GOBLIN_PRESET = new NpcTextureDataPreset() .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsME.Skins.Body.SKIN_TO_BONE, CharacterPatternsME.Skins.Body.SLIM )) .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsME.Skins.Head.GOBLIN, CharacterPatternsME.Skins.Head.GOBLIN_SMALL, CharacterPatternsME.Skins.Head.GOBLIN_SMALL_THICK_BROW, CharacterPatternsME.Skins.Head.GOBLIN_SMALL_VERY_WIDE, CharacterPatternsME.Skins.Head.GOBLIN_SMALL_WISE )) .withPatterns(NpcTextureType.EAR, List.of( CharacterPatternsME.Skins.Ear.WIDE_POINTY, CharacterPatternsME.Skins.Ear.SQUARE_POINTY, CharacterPatternsME.Skins.Ear.LARGE_POINTY, CharacterPatternsME.Skins.Ear.SMALL_POINTY )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsME.Eyes.Eye.COMMON, CharacterPatternsME.Eyes.Eye.SMALL_LOW_WIDE, CharacterPatternsME.Eyes.Eye.SMALL )) .withMaterials(NpcTextureType.CLOTHING, List.of( CharacterMaterialsME.Clothing.BROWN, CharacterMaterialsME.Clothing.ROT_GREEN )); private static final NpcTextureDataPreset HOBGOBLIN_PRESET_A = new NpcTextureDataPreset() .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsME.Skins.Head.URUK_DUMB )) .withPatterns(NpcTextureType.EAR, List.of( CharacterPatternsME.Skins.Ear.SQUARE, CharacterPatternsME.Skins.Ear.NORMAL )) .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsME.Skins.Body.MUSCULAR )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsME.Eyes.Eye.SMALL_WIDE )); private static final NpcTextureDataPreset HOBGOBLIN_PRESET_B = new NpcTextureDataPreset() .withPatterns(NpcTextureType.HEAD, List.of( CharacterPatternsME.Skins.Head.URUK_TALL_DUMB )) .withPatterns(NpcTextureType.BODY, List.of( CharacterPatternsME.Skins.Body.MUSCULAR )) .withPatterns(NpcTextureType.EYE, List.of( CharacterPatternsME.Eyes.Eye.SMALL_HIGH_WIDE )); public static NpcTextureData GENERIC_GOBLIN = new NpcTextureData( new HashMap<>(){{ put(EntityCategory.SHARED, List.of(SHARED_PRESET)); put(EntityCategory.MALE, List.of(GOBLIN_PRESET)); }} ); public static NpcTextureData GENERIC_HOBGOBLIN = new NpcTextureData( new HashMap<>(){{ put(EntityCategory.SHARED, List.of(SHARED_PRESET)); put(EntityCategory.MALE, List.of(HOBGOBLIN_PRESET_A, HOBGOBLIN_PRESET_B)); }} ); } } \ No newline at end of file diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/RacesME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/RacesME.java deleted file mode 100644 index ce6dc28cbc..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/RacesME.java +++ /dev/null @@ -1,204 +0,0 @@ -package net.sevenstars.middleearth.resources; - -import net.fabricmc.fabric.api.event.registry.DynamicRegistries; -import net.minecraft.entity.attribute.EntityAttributes; -import net.minecraft.registry.Registerable; -import net.minecraft.registry.Registry; -import net.minecraft.registry.RegistryEntryLookup; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.entry.RegistryEntry; -import net.minecraft.util.Identifier; -import net.minecraft.world.World; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.entity.ModEntityAttributes; -import net.sevenstars.middleearth.resources.datas.RaceType; -import net.sevenstars.middleearth.resources.datas.attributes.AttributePool; -import net.sevenstars.middleearth.resources.datas.attributes.AttributePoolElement; -import net.sevenstars.middleearth.resources.datas.races.Race; -import net.sevenstars.middleearth.resources.datas.races.data.EntityCategory; -import net.sevenstars.middleearth.utils.IdentifierUtil; - -import java.util.HashMap; -import java.util.List; -import java.util.Optional; - -/** - * Middle-earth mod race registry
- * To fetch a race during runtime, use : {@link net.sevenstars.middleearth.resources.datas.races.RaceLookup#getRace(World, Identifier)}
- * Datadriven content, do not use during runtime! - *
- */ -public class RacesME { - public final static String PATH = "races"; - public static final RegistryKey> KEY = RegistryKey.ofRegistry(Identifier.of(MiddleEarth.MOD_ID, PATH)); - - public static void register(){ - MiddleEarth.LOGGER.logDebugMsg("Registering Dynamic Races for " + MiddleEarth.MOD_ID); - DynamicRegistries.registerSynced(KEY, Race.CODEC); - } - - // TODO : for/from Crab : This is only bare bone races, to be fleshed out in 1.0b -> I will take care of that :P - public final static Race DWARF; - public final static Race ELF; - public final static Race HOBBIT; - public final static Race HUMAN; - public final static Race ORC; - public final static Race URUK; - - public static void bootstrap(Registerable context) { - RegistryEntryLookup raceRegistryEntryLookup = context.getRegistryLookup(KEY); - // Registering all races - register(context, raceRegistryEntryLookup, DWARF); - register(context, raceRegistryEntryLookup, ELF); - register(context, raceRegistryEntryLookup, HOBBIT); - register(context, raceRegistryEntryLookup, HUMAN); - register(context, raceRegistryEntryLookup, ORC); - register(context, raceRegistryEntryLookup, URUK); - } - - private static Race register(Registerable context, RegistryEntryLookup raceRegistryEntryLookup, Race race) { - RegistryKey raceRegistryKey = of(race.getId().getPath()); - String name = raceRegistryKey.getValue().getPath(); - RegistryKey newRace = RegistryKey.of(KEY,Identifier.of(MiddleEarth.MOD_ID,name)); - - Optional> optionalRace = raceRegistryEntryLookup.getOptional(raceRegistryKey); - optionalRace.ifPresent(raceReference -> context.register(newRace, race)); - - return race; - } - private static RegistryKey of(String name) { - return RegistryKey.of(KEY, Identifier.of(MiddleEarth.MOD_ID, name)); - } - - - static { - DWARF = new Race(Identifier.of(MiddleEarth.MOD_ID, "dwarf"), RaceType.DWARF, - new AttributePool() - .addElement(AttributePoolElement.create(ModEntityAttributes.CLIMBING_STRENGTH, 80.0f)) - .addElement(AttributePoolElement.create(ModEntityAttributes.POWDERED_SNOW_IMMUNITY, 1.0f)) - .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.81).withBuffReversed()) - .addElement(AttributePoolElement.create(EntityAttributes.MAX_HEALTH, 22.0)) - .addElement(AttributePoolElement.create(EntityAttributes.ATTACK_DAMAGE, 1.0) - .withModifier(IdentifierUtil.create("dwarven_damage_modifier"), 10.0)) - .addElement(AttributePoolElement.create(EntityAttributes.ENTITY_INTERACTION_RANGE, 2.75)) - .addElement(AttributePoolElement.create(EntityAttributes.MOVEMENT_SPEED, 0.09)) - .addElement(AttributePoolElement.create(EntityAttributes.MINING_EFFICIENCY, 0.15)), - new HashMap<>(){{ - put(EntityCategory.SHARED, new AttributePool() - .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.81)) - .addElement(AttributePoolElement.create(EntityAttributes.MAX_HEALTH, 22.0)) - .addElement(AttributePoolElement.create(EntityAttributes.ATTACK_DAMAGE, 1.0)) - .addElement(AttributePoolElement.create(EntityAttributes.ENTITY_INTERACTION_RANGE, 2.75)) - .addElement(AttributePoolElement.create(EntityAttributes.MOVEMENT_SPEED, 0.09)) - .addElement(AttributePoolElement.create(EntityAttributes.MINING_EFFICIENCY, 0.15))); - put(EntityCategory.MALE, new AttributePool() - .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.75, 0.81))); - put(EntityCategory.FEMALE, new AttributePool() - .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.71, 0.78))); - }}, - List.of(), List.of()); - ELF = new Race(Identifier.of(MiddleEarth.MOD_ID, "elf"), RaceType.ELF, - new AttributePool() - .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 1.06)) - .addElement(AttributePoolElement.create(EntityAttributes.MAX_HEALTH, 20.0)) - .addElement(AttributePoolElement.create(EntityAttributes.ATTACK_DAMAGE, 1.0)) - .addElement(AttributePoolElement.create(EntityAttributes.ENTITY_INTERACTION_RANGE, 3.25)) - .addElement(AttributePoolElement.create(EntityAttributes.MOVEMENT_SPEED, 0.1)) - .addElement(AttributePoolElement.create(EntityAttributes.FALL_DAMAGE_MULTIPLIER, 0.75).withBuffReversed()), - new HashMap<>(){{ - put(EntityCategory.SHARED, new AttributePool() - .addElement(AttributePoolElement.create(EntityAttributes.MAX_HEALTH, 14.0)) - .addElement(AttributePoolElement.create(EntityAttributes.ATTACK_DAMAGE, 0.9)) - .addElement(AttributePoolElement.create(EntityAttributes.ENTITY_INTERACTION_RANGE, 2.5)) - .addElement(AttributePoolElement.create(EntityAttributes.MOVEMENT_SPEED, 0.115)) - .addElement(AttributePoolElement.create(EntityAttributes.SNEAKING_SPEED, 0.435)) - .addElement(AttributePoolElement.create(EntityAttributes.FALL_DAMAGE_MULTIPLIER, 0.75))); - put(EntityCategory.MALE, new AttributePool() - .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 1.02, 1.06))); - put(EntityCategory.FEMALE, new AttributePool() - .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 1.00, 1.03))); - }}, - List.of(), List.of()); - - HOBBIT = new Race(Identifier.of(MiddleEarth.MOD_ID, "hobbit"), RaceType.HOBBIT, - new AttributePool() - .addElement(AttributePoolElement.create(EntityAttributes.MAX_HEALTH, 14.0)) - .addElement(AttributePoolElement.create(EntityAttributes.ATTACK_DAMAGE, 0.9)) - .addElement(AttributePoolElement.create(EntityAttributes.ENTITY_INTERACTION_RANGE, 2.5)) - .addElement(AttributePoolElement.create(EntityAttributes.MOVEMENT_SPEED, 0.115)) - .addElement(AttributePoolElement.create(EntityAttributes.SNEAKING_SPEED, 0.435)) - .addElement(AttributePoolElement.create(EntityAttributes.FALL_DAMAGE_MULTIPLIER, 0.90).withBuffReversed()) - .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.6).withBuffReversed()), - new HashMap<>(){{ - put(EntityCategory.SHARED, new AttributePool() - .addElement(AttributePoolElement.create(EntityAttributes.MAX_HEALTH, 14.0)) - .addElement(AttributePoolElement.create(EntityAttributes.ATTACK_DAMAGE, 0.9)) - .addElement(AttributePoolElement.create(EntityAttributes.ENTITY_INTERACTION_RANGE, 2.5)) - .addElement(AttributePoolElement.create(EntityAttributes.MOVEMENT_SPEED, 0.115)) - .addElement(AttributePoolElement.create(EntityAttributes.SNEAKING_SPEED, 0.435)) - .addElement(AttributePoolElement.create(EntityAttributes.FALL_DAMAGE_MULTIPLIER, 0.90))); - put(EntityCategory.MALE, new AttributePool() - .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.58, 0.62))); - put(EntityCategory.FEMALE, new AttributePool() - .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.55, 0.58))); - }}, - - List.of(), List.of()); - - HUMAN = new Race(Identifier.of(MiddleEarth.MOD_ID, "human"), RaceType.HUMAN, - new AttributePool(), - new HashMap<>(){{ - put(EntityCategory.SHARED, new AttributePool() - .addElement(AttributePoolElement.create(EntityAttributes.ATTACK_DAMAGE, 1.0))); - put(EntityCategory.FEMALE, new AttributePool() - .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.95, 1.0))); - put(EntityCategory.MALE, new AttributePool() - .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.9, 0.98))); - }}, - List.of(), List.of()); - ORC = new Race(Identifier.of(MiddleEarth.MOD_ID, "orc"), RaceType.ORC, - new AttributePool() - .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.83).withBuffReversed()) - .addElement(AttributePoolElement.create(EntityAttributes.MAX_HEALTH, 16.0)) - .addElement(AttributePoolElement.create(EntityAttributes.ATTACK_DAMAGE, 1.0)) - .addElement(AttributePoolElement.create(EntityAttributes.ENTITY_INTERACTION_RANGE, 2.75)) - .addElement(AttributePoolElement.create(EntityAttributes.MOVEMENT_SPEED, 0.11)) - .addElement(AttributePoolElement.create(EntityAttributes.STEP_HEIGHT, 1.0)), - new HashMap<>(){{ - put(EntityCategory.SHARED, new AttributePool() - .addElement(AttributePoolElement.create(EntityAttributes.MAX_HEALTH, 16.0)) - .addElement(AttributePoolElement.create(EntityAttributes.ATTACK_DAMAGE, 1.0)) - .addElement(AttributePoolElement.create(EntityAttributes.ENTITY_INTERACTION_RANGE, 2.75)) - .addElement(AttributePoolElement.create(EntityAttributes.MOVEMENT_SPEED, 0.11)) - .addElement(AttributePoolElement.create(EntityAttributes.STEP_HEIGHT, 1.0))); - put(EntityCategory.FEMALE, new AttributePool() - .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.74, 0.79))); - put(EntityCategory.MALE, new AttributePool() - .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.78, 0.83))); - }}, - List.of(), List.of()); - URUK = new Race(Identifier.of(MiddleEarth.MOD_ID, "uruk"), RaceType.URUK, - new AttributePool() - .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 1.0)) - .addElement(AttributePoolElement.create(EntityAttributes.MAX_HEALTH, 22.0)) - .addElement(AttributePoolElement.create(EntityAttributes.ATTACK_DAMAGE, 1.0)) - .addElement(AttributePoolElement.create(EntityAttributes.ENTITY_INTERACTION_RANGE, 3.0)) - .addElement(AttributePoolElement.create(EntityAttributes.MOVEMENT_SPEED, 0.09)) - .addElement(AttributePoolElement.create(EntityAttributes.BURNING_TIME, 0.70).withBuffReversed()), - new HashMap<>(){{ - put(EntityCategory.SHARED, new AttributePool() - .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 1.0)) - .addElement(AttributePoolElement.create(EntityAttributes.MAX_HEALTH, 22.0)) - .addElement(AttributePoolElement.create(EntityAttributes.ATTACK_DAMAGE, 1.0)) - .addElement(AttributePoolElement.create(EntityAttributes.ENTITY_INTERACTION_RANGE, 3.0)) - .addElement(AttributePoolElement.create(EntityAttributes.MOVEMENT_SPEED, 0.09)) - .addElement(AttributePoolElement.create(EntityAttributes.STEP_HEIGHT, 0.70))); - put(EntityCategory.FEMALE, new AttributePool() - .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.92, 0.98))); - put(EntityCategory.MALE, new AttributePool() - .addElement(AttributePoolElement.create(EntityAttributes.SCALE, 0.96, 1.0))); - }}, - List.of(), List.of()); - } -} - diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/StructureManagerDatasME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/StructureManagerDatasME.java deleted file mode 100644 index 6f13f6190d..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/StructureManagerDatasME.java +++ /dev/null @@ -1,146 +0,0 @@ -package net.sevenstars.middleearth.resources; - -import net.fabricmc.fabric.api.event.registry.DynamicRegistries; -import net.minecraft.entity.EntityType; -import net.minecraft.registry.Registerable; -import net.minecraft.registry.Registry; -import net.minecraft.registry.RegistryEntryLookup; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.entry.RegistryEntry; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.datageneration.content.TranslationEntries; -import net.sevenstars.middleearth.entity.ModEntities; -import net.sevenstars.middleearth.resources.datas.npcs.pools.*; -import net.sevenstars.middleearth.resources.datas.structure_manager_datas.SpawnNestNodeData; -import net.sevenstars.middleearth.resources.datas.structure_manager_datas.StructureManagerData; -import net.sevenstars.middleearth.resources.datas.structure_manager_datas.StructureSpawnNestPool; -import net.sevenstars.middleearth.utils.IdentifierUtil; - -import java.util.List; -import java.util.Optional; - -public class StructureManagerDatasME { - public final static String PATH = "structure_manager_datas"; - public static final RegistryKey> KEY = RegistryKey.ofRegistry(Identifier.of(MiddleEarth.MOD_ID, PATH)); - - public static void register(){ - MiddleEarth.LOGGER.logDebugMsg("Registering Dynamic Structure Manager Datas for " + MiddleEarth.MOD_ID); - DynamicRegistries.registerSynced(KEY, StructureManagerData.CODEC); - } - - public final static StructureManagerData GONDOR_GENERIC_NESTS; - public final static StructureManagerData EREBOR_GENERIC_NESTS; - public final static StructureManagerData DALE_KEEP_NESTS; - - public static void bootstrap(Registerable context) { - RegistryEntryLookup structureDataRegistryEntryLookup = context.getRegistryLookup(KEY); - // [TEMPLATE] - register(context, structureDataRegistryEntryLookup, GONDOR_GENERIC_NESTS); - register(context, structureDataRegistryEntryLookup, EREBOR_GENERIC_NESTS); - register(context, structureDataRegistryEntryLookup, DALE_KEEP_NESTS); - } - - private static StructureManagerData register(Registerable context, RegistryEntryLookup registryEntryLookup, StructureManagerData structureManagerData) { - RegistryKey registryKey = RegistryKey.of(KEY, structureManagerData.getId()); - String name = registryKey.getValue().getPath(); - RegistryKey structureDataKey = RegistryKey.of(KEY,Identifier.of(MiddleEarth.MOD_ID,name)); - - Optional> optionalStructureDataReference = registryEntryLookup.getOptional(registryKey); - optionalStructureDataReference.ifPresent(biomeReference -> context.register(structureDataKey, structureManagerData)); - - TranslationEntries.factionEntries.add(structureManagerData.getId().getPath()); - - return structureManagerData; - } - - static { - GONDOR_GENERIC_NESTS = new StructureManagerData(Identifier.of(MiddleEarth.MOD_ID, "gondor_generic_nests"), List.of( - new SpawnNestNodeData(IdentifierUtil.getIdentifierFromString("gondor_generic_nests.captain_nest"), 1500, List.of( - new StructureSpawnNestPool(ModEntities.NPC, 1).SetNpcData(FactionsME.GONDOR, GondorianNpcDataPool.GONDOR_LEADER.getId()).SetFixAmount(1), - new StructureSpawnNestPool(ModEntities.NPC, 2).SetNpcData(FactionsME.GONDOR, GondorianNpcDataPool.GONDOR_KNIGHT.getId()).SetFixAmount(1), - new StructureSpawnNestPool(ModEntities.NPC, 3).SetNpcData(FactionsME.GONDOR, GondorianNpcDataPool.GONDOR_VETERAN.getId()).SetFixAmount(1) - )), - new SpawnNestNodeData(IdentifierUtil.getIdentifierFromString("gondor_generic_nests.barrack_nest"), 1500, List.of( - new StructureSpawnNestPool(ModEntities.NPC, 3).SetNpcData(FactionsME.GONDOR, GondorianNpcDataPool.GONDOR_SOLDIER.getId()).SetRangeAmount(2,3), - new StructureSpawnNestPool(ModEntities.NPC, 2).SetNpcData(FactionsME.GONDOR, GondorianNpcDataPool.GONDOR_VETERAN.getId()).SetRangeAmount(2,3), - new StructureSpawnNestPool(ModEntities.NPC, 5).SetNpcData(FactionsME.GONDOR, GondorianNpcDataPool.GONDOR_MILITIA.getId()).SetRangeAmount(2,4) - )), - new SpawnNestNodeData(IdentifierUtil.getIdentifierFromString("gondor_generic_nests.worker_nest"), 1500, List.of( - new StructureSpawnNestPool(ModEntities.NPC, 2).SetNpcData(FactionsME.GONDOR, NpcME.HUMAN_CIVILIAN.getId()).SetRangeAmount(1,3) - )), - new SpawnNestNodeData(IdentifierUtil.getIdentifierFromString("gondor_generic_nests.prisoner_nest"), 1500, List.of( - new StructureSpawnNestPool(ModEntities.NPC, 5).SetNpcData(FactionsME.MORDOR, MordorNpcDataPool.MORDOR_ORC_SNAGA.getId()).SetFixAmount(1), - new StructureSpawnNestPool(ModEntities.NPC, 3).SetNpcData(FactionsME.LONGBEARDS_EREBOR, NpcME.DWARF_CIVILIAN.getId()).SetFixAmount(1), - new StructureSpawnNestPool(ModEntities.NPC, 1).SetNpcData(FactionsME.LOTHLORIEN, NpcME.ELF_CIVILIAN.getId()).SetFixAmount(1), - new StructureSpawnNestPool(ModEntities.NPC, 3).SetNpcData(FactionsME.BRIGAND, NpcME.HUMAN_CIVILIAN.getId()).SetFixAmount(1) - )), - new SpawnNestNodeData(IdentifierUtil.getIdentifierFromString("gondor_generic_nests.stable_nest"), 1500, List.of( - new StructureSpawnNestPool(EntityType.HORSE, 5).SetFixAmount(1), - new StructureSpawnNestPool(EntityType.DONKEY, 2).SetFixAmount(1), - new StructureSpawnNestPool(EntityType.PIG, 1).SetFixAmount(1) - )) - )); - - EREBOR_GENERIC_NESTS = new StructureManagerData(Identifier.of(MiddleEarth.MOD_ID, "erebor_generic_nests"), List.of( - new SpawnNestNodeData(IdentifierUtil.getIdentifierFromString("erebor_generic_nests.captain_nest"), 1500, List.of( - new StructureSpawnNestPool(ModEntities.NPC, 1).SetNpcData(FactionsME.LONGBEARDS_EREBOR, EreborNpcDataPool.EREBOR_LEADER.getId()).SetFixAmount(1), - new StructureSpawnNestPool(ModEntities.NPC, 2).SetNpcData(FactionsME.LONGBEARDS_EREBOR, EreborNpcDataPool.EREBOR_GATEWARDEN.getId()).SetFixAmount(1), - new StructureSpawnNestPool(ModEntities.NPC, 3).SetNpcData(FactionsME.LONGBEARDS_EREBOR, EreborNpcDataPool.EREBOR_ELITE.getId()).SetFixAmount(1) - )), - new SpawnNestNodeData(IdentifierUtil.getIdentifierFromString("erebor_generic_nests.barrack_nest"), 1500, List.of( - new StructureSpawnNestPool(ModEntities.NPC, 3).SetNpcData(FactionsME.LONGBEARDS_EREBOR, EreborNpcDataPool.EREBOR_SOLDIER.getId()).SetRangeAmount(2,3), - new StructureSpawnNestPool(ModEntities.NPC, 2).SetNpcData(FactionsME.LONGBEARDS_EREBOR, EreborNpcDataPool.EREBOR_ARCHER.getId()).SetRangeAmount(2,3), - new StructureSpawnNestPool(ModEntities.NPC, 5).SetNpcData(FactionsME.LONGBEARDS_EREBOR, EreborNpcDataPool.EREBOR_MILITIA.getId()).SetRangeAmount(2,4) - )), - new SpawnNestNodeData(IdentifierUtil.getIdentifierFromString("erebor_generic_nests.worker_nest"), 1500, List.of( - new StructureSpawnNestPool(ModEntities.NPC, 2).SetNpcData(FactionsME.LONGBEARDS_EREBOR, EreborNpcDataPool.EREBOR_MINER.getId()).SetRangeAmount(1,3), - new StructureSpawnNestPool(ModEntities.NPC, 3).SetNpcData(FactionsME.LONGBEARDS_EREBOR, EreborNpcDataPool.EREBOR_CIVILIAN.getId()).SetRangeAmount(1,3) - )), - new SpawnNestNodeData(IdentifierUtil.getIdentifierFromString("erebor_generic_nests.prisoner_nest"), 1500, List.of( - new StructureSpawnNestPool(ModEntities.NPC, 5).SetNpcData(FactionsME.MORDOR, MordorNpcDataPool.MORDOR_ORC_SNAGA.getId()).SetFixAmount(1), - new StructureSpawnNestPool(ModEntities.NPC, 3).SetNpcData(FactionsME.LONGBEARDS_EREBOR, NpcME.DWARF_CIVILIAN.getId()).SetFixAmount(1), - new StructureSpawnNestPool(ModEntities.NPC, 1).SetNpcData(FactionsME.LOTHLORIEN, NpcME.ELF_CIVILIAN.getId()).SetFixAmount(1), - new StructureSpawnNestPool(ModEntities.NPC, 3).SetNpcData(FactionsME.BRIGAND, NpcME.HUMAN_CIVILIAN.getId()).SetFixAmount(1) - )), - new SpawnNestNodeData(IdentifierUtil.getIdentifierFromString("erebor_generic_nests.stable_nest"), 1500, List.of( - new StructureSpawnNestPool(ModEntities.BROADHOOF_GOAT, 5).SetFixAmount(1), - new StructureSpawnNestPool(EntityType.PIG, 3).SetFixAmount(1), - new StructureSpawnNestPool(EntityType.DONKEY, 2).SetFixAmount(1) - )) - )); - - DALE_KEEP_NESTS = new StructureManagerData(Identifier.of(MiddleEarth.MOD_ID, "dale_keep_nests"), List.of( - new SpawnNestNodeData(IdentifierUtil.getIdentifierFromString("dale_keep_nests.captain"), 1500, List.of( - new StructureSpawnNestPool(ModEntities.NPC, 1).SetNpcData(FactionsME.DALE, DalishNpcDataPool.DALE_VETERAN.getId()).SetFixAmount(1), - new StructureSpawnNestPool(ModEntities.NPC, 2).SetNpcData(FactionsME.DALE, DalishNpcDataPool.DALE_SERGEANT.getId()).SetFixAmount(1) - )), - new SpawnNestNodeData(IdentifierUtil.getIdentifierFromString("dale_keep_nests.stable_carers"), 1500, List.of( - new StructureSpawnNestPool(ModEntities.NPC, 2).SetNpcData(FactionsME.DALE, DalishNpcDataPool.DALE_WORKER.getId()).SetFixAmount(2) - )), - new SpawnNestNodeData(IdentifierUtil.getIdentifierFromString("dale_keep_nests.stable"), 1500, List.of( - new StructureSpawnNestPool(EntityType.DONKEY, 1).SetFixAmount(1) - )), - new SpawnNestNodeData(IdentifierUtil.getIdentifierFromString("dale_keep_nests.small_prisoner_cell"), 1500, List.of( - new StructureSpawnNestPool(ModEntities.NPC, 5).SetNpcData(FactionsME.DALE, BrigandNpcDataPool.BRIGAND_THIEF.getId()).SetFixAmount(1), - new StructureSpawnNestPool(ModEntities.NPC, 2).SetNpcData(FactionsME.DALE, BrigandNpcDataPool.BRIGAND_THUG.getId()).SetFixAmount(1), - new StructureSpawnNestPool(ModEntities.NPC, 1).SetNpcData(FactionsME.DALE, BrigandNpcDataPool.BRIGAND_CHIEFTAIN.getId()).SetFixAmount(1) - )), - new SpawnNestNodeData(IdentifierUtil.getIdentifierFromString("dale_keep_nests.large_prisoner_cell"), 1500, List.of( - new StructureSpawnNestPool(ModEntities.NPC, 5).SetNpcData(FactionsME.DALE, BrigandNpcDataPool.BRIGAND_THIEF.getId()).SetRangeAmount(1,3), - new StructureSpawnNestPool(ModEntities.NPC, 2).SetNpcData(FactionsME.DALE, BrigandNpcDataPool.BRIGAND_THUG.getId()).SetRangeAmount(1,3), - new StructureSpawnNestPool(ModEntities.NPC, 1).SetNpcData(FactionsME.DALE, BrigandNpcDataPool.BRIGAND_CHIEFTAIN.getId()).SetFixAmount(1) - )), - new SpawnNestNodeData(IdentifierUtil.getIdentifierFromString("dale_keep_nests.soldier"), 1500, List.of( - new StructureSpawnNestPool(ModEntities.NPC, 4).SetNpcData(FactionsME.DALE, DalishNpcDataPool.DALE_SOLDIER.getId()).SetFixAmount(1), - new StructureSpawnNestPool(ModEntities.NPC, 3).SetNpcData(FactionsME.DALE, DalishNpcDataPool.DALE_SOLDIER_ARCHER.getId()).SetFixAmount(1), - new StructureSpawnNestPool(ModEntities.NPC, 2).SetNpcData(FactionsME.DALE, DalishNpcDataPool.DALE_MILITIA.getId()).SetFixAmount(1) - )), - new SpawnNestNodeData(IdentifierUtil.getIdentifierFromString("dale_keep_nests.elite"), 1500, List.of( - new StructureSpawnNestPool(ModEntities.NPC, 4).SetNpcData(FactionsME.DALE, DalishNpcDataPool.DALE_KNIGHT.getId()).SetFixAmount(1), - new StructureSpawnNestPool(ModEntities.NPC, 3).SetNpcData(FactionsME.DALE, DalishNpcDataPool.DALE_VETERAN.getId()).SetFixAmount(1), - new StructureSpawnNestPool(ModEntities.NPC, 2).SetNpcData(FactionsME.DALE, DalishNpcDataPool.DALE_SOLDIER.getId()).SetFixAmount(1) - )) - )); - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/biome_events/BiomeEventData.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/biome_events/BiomeEventData.java index f569ee6464..853cb4351b 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/biome_events/BiomeEventData.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/biome_events/BiomeEventData.java @@ -12,7 +12,7 @@ import net.minecraft.util.math.random.Random; import net.minecraft.world.World; import net.sevenstars.middleearth.entity.npcs.NpcEntity; -import net.sevenstars.middleearth.resources.NpcME; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; import net.sevenstars.middleearth.resources.datas.npcs.NpcData; import java.util.ArrayList; @@ -45,7 +45,7 @@ public List getWildNpcs(){ return wildNpcs; } - public FoundNpcReturn findNpcData(World world, NpcEntity entity) { + public ContextualizedBiomeData findNpcData(World world, NpcEntity entity) { List weightedData = new ArrayList(); DynamicRegistryManager manager = world.getRegistryManager(); @@ -60,7 +60,7 @@ public FoundNpcReturn findNpcData(World world, NpcEntity entity) { return null; BiomeNpcSpawningData spawningData = weightedData.get(Random.create().nextInt(weightedData.size())); - Registry npcDataRegistry = manager.getOrThrow(NpcME.KEY); + Registry npcDataRegistry = manager.getOrThrow(DynamicRegistriesME.NPC); NpcData foundNpcData = npcDataRegistry.get(spawningData.getNpcDataIdentifier()); EntityType entityType = null; @@ -74,10 +74,10 @@ public FoundNpcReturn findNpcData(World world, NpcEntity entity) { } } } - return new FoundNpcReturn(foundNpcData, entityType, mountArmorItemStack); + return new ContextualizedBiomeData(foundNpcData, entityType, mountArmorItemStack); } - public record FoundNpcReturn(NpcData npcData, EntityType mountEntity, ItemStack mountArmor){ + public record ContextualizedBiomeData(NpcData npcData, EntityType hasMount, ItemStack mountArmor){ } } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/biome_events/BiomeEventDataLookup.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/biome_events/BiomeEventDataLookup.java index c83c0d513a..028b8094dd 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/biome_events/BiomeEventDataLookup.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/biome_events/BiomeEventDataLookup.java @@ -5,22 +5,23 @@ import net.minecraft.world.World; import net.minecraft.world.biome.Biome; import net.sevenstars.middleearth.entity.npcs.NpcEntity; -import net.sevenstars.middleearth.resources.BiomeEventsME; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; +import net.sevenstars.middleearth.registries.content.biomevents.BiomeEventRegistry; public class BiomeEventDataLookup { - public static BiomeEventData.FoundNpcReturn findNpcDataForBiome(World world, RegistryEntry biome, NpcEntity entity) { + public static BiomeEventData.ContextualizedBiomeData findNpcDataForBiome(World world, RegistryEntry biome, NpcEntity entity) { Identifier biomeEventId = Identifier.of(biome.getIdAsString()); - BiomeEventData eventData = world.getRegistryManager().getOrThrow(BiomeEventsME.KEY).get(biomeEventId); + BiomeEventData eventData = world.getRegistryManager().getOrThrow(DynamicRegistriesME.BIOME_EVENT).get(biomeEventId); if(eventData != null){ var foundNpcData = eventData.findNpcData(world, entity); if(foundNpcData == null && eventData.getSpawnDefaultWhenUnmet()){ - eventData = world.getRegistryManager().getOrThrow(BiomeEventsME.KEY).get(BiomeEventsME.DEFAULT); + eventData = world.getRegistryManager().getOrThrow(DynamicRegistriesME.BIOME_EVENT).get(BiomeEventRegistry.DEFAULT); foundNpcData = eventData.findNpcData(world, entity); } return foundNpcData; } else { - eventData = world.getRegistryManager().getOrThrow(BiomeEventsME.KEY).get(BiomeEventsME.DEFAULT); + eventData = world.getRegistryManager().getOrThrow(DynamicRegistriesME.BIOME_EVENT).get(BiomeEventRegistry.DEFAULT); if(eventData != null) return eventData.findNpcData(world, entity); } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/AffinityLevel.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/AffinityLevel.java new file mode 100644 index 0000000000..d4374acd2f --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/AffinityLevel.java @@ -0,0 +1,8 @@ +package net.sevenstars.middleearth.resources.datas.common; + +public enum AffinityLevel { + HOSTILE, + NEUTRAL, + FRIENDLY, + ALLY +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/CharacterMaterialTypes.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/CharacterMaterialTypes.java new file mode 100644 index 0000000000..dc52ab6e66 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/CharacterMaterialTypes.java @@ -0,0 +1,7 @@ +package net.sevenstars.middleearth.resources.datas.common; + +public enum CharacterMaterialTypes { + SKIN, + EYE, + HAIR +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/CharacterPatternTypes.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/CharacterPatternTypes.java new file mode 100644 index 0000000000..74d0cd8b50 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/CharacterPatternTypes.java @@ -0,0 +1,14 @@ +package net.sevenstars.middleearth.resources.datas.common; + +public enum CharacterPatternTypes { + BODY, + HEAD, + SCAR, + FEET, + EAR, + NOSE, + EYE, + HAIR, + EYEBROW, + BEARD +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/Disposition.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/DispositionType.java similarity index 83% rename from middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/Disposition.java rename to middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/DispositionType.java index e9d9985458..0e0cbcb117 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/Disposition.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/DispositionType.java @@ -1,11 +1,11 @@ -package net.sevenstars.middleearth.resources.datas; +package net.sevenstars.middleearth.resources.datas.common; -import net.sevenstars.middleearth.MiddleEarth; import net.minecraft.text.MutableText; import net.minecraft.text.Text; import net.minecraft.util.Identifier; +import net.sevenstars.middleearth.MiddleEarth; -public enum Disposition { +public enum DispositionType { GOOD, NEUTRAL, EVIL; diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/EntityCategories.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/EntityCategories.java new file mode 100644 index 0000000000..23431ba831 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/EntityCategories.java @@ -0,0 +1,7 @@ +package net.sevenstars.middleearth.resources.datas.common; + +public enum EntityCategories { + SHARED, + MALE, + FEMALE +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/FactionType.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/FactionType.java similarity index 89% rename from middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/FactionType.java rename to middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/FactionType.java index cfb78aebfe..50e59ff672 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/FactionType.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/FactionType.java @@ -1,4 +1,4 @@ -package net.sevenstars.middleearth.resources.datas; +package net.sevenstars.middleearth.resources.datas.common; import net.sevenstars.middleearth.MiddleEarth; import net.minecraft.text.MutableText; diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/NpcRank.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/NpcRank.java similarity index 58% rename from middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/NpcRank.java rename to middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/NpcRank.java index 1036d6abe6..f0b98f4889 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/NpcRank.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/NpcRank.java @@ -1,5 +1,6 @@ -package net.sevenstars.middleearth.resources.datas.npcs.data; +package net.sevenstars.middleearth.resources.datas.common; +// To remove public enum NpcRank { CIVILIAN, MILITIA, diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/RaceType.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/RaceType.java similarity index 90% rename from middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/RaceType.java rename to middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/RaceType.java index 9a395b91ec..822061268d 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/RaceType.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/common/RaceType.java @@ -1,4 +1,4 @@ -package net.sevenstars.middleearth.resources.datas; +package net.sevenstars.middleearth.resources.datas.common; import net.sevenstars.middleearth.MiddleEarth; import net.minecraft.text.MutableText; diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/Faction.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/Faction.java index 03424fb55d..fce38bd8f6 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/Faction.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/Faction.java @@ -26,84 +26,80 @@ import net.minecraft.world.World; import net.sevenstars.middleearth.MiddleEarth; import net.sevenstars.middleearth.exceptions.FactionIdentifierException; -import net.sevenstars.middleearth.resources.FactionsME; -import net.sevenstars.middleearth.resources.datas.Disposition; -import net.sevenstars.middleearth.resources.datas.FactionType; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; +import net.sevenstars.middleearth.resources.datas.common.FactionType; +import net.sevenstars.middleearth.resources.datas.common.NpcRank; import net.sevenstars.middleearth.resources.datas.factions.data.BannerData; +import net.sevenstars.middleearth.resources.datas.factions.data.InitialDiplomacy; import net.sevenstars.middleearth.resources.datas.factions.data.SpawnDataHandler; import net.sevenstars.middleearth.resources.datas.npcs.NpcData; import net.sevenstars.middleearth.resources.datas.npcs.NpcDataLookup; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcRank; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedGearData; import net.sevenstars.middleearth.resources.datas.races.Race; import net.sevenstars.middleearth.resources.datas.races.RaceLookup; -import net.sevenstars.middleearth.utils.IdentifierUtil; import java.util.*; public class Faction { - private static HashMap> FactionSelectionOrderIndexPerDisposition; - - public static final Codec CODEC = RecordCodecBuilder.create(instance -> { - return instance.group( - Codec.STRING.fieldOf("id").forGetter(Faction::getIdValue), - Codec.INT.fieldOf("faction_selection_order_index").forGetter(Faction::getFactionSelectionOrderIndex), - Codec.BOOL.fieldOf("joinable").forGetter(Faction::getJoinable), - Codec.STRING.fieldOf("disposition").forGetter(Faction::getDispositionString), - Codec.STRING.fieldOf("faction_type").forGetter(Faction::getFactionTypeString), - Identifier.CODEC.optionalFieldOf("parent_faction").forGetter(Faction::getParentFactionIdentifier), - Codec.list(Identifier.CODEC).optionalFieldOf("subfaction").forGetter(Faction::getSubfactionIds), - NbtCompound.CODEC.optionalFieldOf("npcs").forGetter(Faction::getNpcValues), - NbtCompound.CODEC.optionalFieldOf("banner").forGetter(Faction::getBannerNbt), - NbtCompound.CODEC.optionalFieldOf("spawns").forGetter(Faction::getSpawnDataNbt), - Codec.list(Codec.STRING, 0, 5).optionalFieldOf("command_join").forGetter(Faction::getJoinCommands), - Codec.list(Codec.STRING, 0, 5).optionalFieldOf("command_leave").forGetter(Faction::getLeaveCommands), - Codec.list(Identifier.CODEC).fieldOf("diplomatic_alliances").forGetter(Faction::getDiplomaticAllies), - Codec.list(Identifier.CODEC).fieldOf("diplomatic_neutrals").forGetter(Faction::getDiplomaticNeutrals), - Codec.list(Identifier.CODEC).fieldOf("diplomatic_enemies").forGetter(Faction::getDiplomaticEnemies) - ).apply(instance, Faction::new); - }); + private static HashMap> FactionSelectionOrderIndexPerDisposition; + + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + Codec.STRING.fieldOf("id").forGetter(Faction::getIdValue), + Codec.INT.fieldOf("faction_selection_order_index").forGetter(Faction::getFactionSelectionOrderIndex), + Codec.BOOL.fieldOf("joinable").forGetter(Faction::getJoinable), + Codec.STRING.fieldOf("disposition").forGetter(Faction::getDispositionString), + Codec.STRING.fieldOf("faction_type").forGetter(Faction::getFactionTypeString), + Identifier.CODEC.optionalFieldOf("parent_faction").forGetter(Faction::getParentFactionIdentifier), + Codec.list(Identifier.CODEC).optionalFieldOf("subfaction").forGetter(Faction::getSubfactionIds), + NbtCompound.CODEC.optionalFieldOf("npcs").forGetter(Faction::getNpcValues), + NbtCompound.CODEC.optionalFieldOf("banner").forGetter(Faction::getBannerNbt), + NbtCompound.CODEC.optionalFieldOf("spawns").forGetter(Faction::getSpawnDataNbt), + Codec.list(Codec.STRING, 0, 5).optionalFieldOf("command_join").forGetter(Faction::getJoinCommands), + Codec.list(Codec.STRING, 0, 5).optionalFieldOf("command_leave").forGetter(Faction::getLeaveCommands), + Codec.list(InitialDiplomacy.CODEC).fieldOf("initial_diplomacy").forGetter(Faction::getInitialDiplomaciesNbtList) + ).apply(instance, Faction::new)); public static final PacketCodec PACKET_CODEC = PacketCodecs.codec(CODEC); - public static final Codec> ENTRY_CODEC = RegistryElementCodec.of(FactionsME.KEY, CODEC); - public static final PacketCodec> ENTRY_PACKET_CODEC = PacketCodecs.registryEntry(FactionsME.KEY, PACKET_CODEC); + public static final Codec> ENTRY_CODEC = RegistryElementCodec.of(DynamicRegistriesME.FACTION, CODEC); + public static final PacketCodec> ENTRY_PACKET_CODEC = PacketCodecs.registryEntry(DynamicRegistriesME.FACTION, PACKET_CODEC); private final Identifier id; private final Integer factionSelectionOrderIndex; private final String translatableKey; private final boolean joinable; - private final Disposition disposition; + private final DispositionType dispositionType; private final FactionType factionType; private final Identifier parentFactionId; private final HashMap> npcDatasByRank; private final BannerData bannerData; private final SpawnDataHandler spawnDataHandler; + private final List initialDiplomacies; + private List subFactions = null; private List joinCommands; private List leaveCommands; private List races = null; private List descriptions = null; private Text raceList = null; - private List diplomaticAllies; - private List diplomaticNeutrals; - private List diplomaticEnemies; public Faction(String id, Integer factionSelectionOrderIndex, Boolean joinable, String disposition, String factionType, Optional parentFaction, Optional> newSubFactions, Optional npcs, - Optional bannerDataNbt, Optional spawnsNbt, Optional> joinCommands, Optional> leaveCommands, - List diplomaticAllies, List diplomaticNeutrals, List diplomaticEnemies) { - this.id = IdentifierUtil.getIdentifierFromString(id); + Optional bannerDataNbt, Optional spawnsNbt, Optional> joinCommands, Optional> leaveCommands, List initialDiplomaciesNbt) { + this.id = MiddleEarth.fetchId(id); this.factionSelectionOrderIndex = factionSelectionOrderIndex; // TODO : Validation, rework this part in the future this.translatableKey = "faction.".concat(this.id.toTranslationKey()); this.joinable = joinable; - this.disposition = Disposition.valueOf(disposition.toUpperCase()); + this.dispositionType = DispositionType.valueOf(disposition.toUpperCase()); this.factionType = FactionType.valueOf(factionType.toUpperCase()); this.parentFactionId = parentFaction.orElse(null); + this.initialDiplomacies = initialDiplomaciesNbt; + if(newSubFactions.isPresent()){ this.subFactions = new ArrayList<>(); this.subFactions.addAll(newSubFactions.get()); @@ -120,7 +116,7 @@ public Faction(String id, Integer factionSelectionOrderIndex, Boolean joinable, NbtList npcDataList = rankCompound.getList("pool").get(); List dataList = new ArrayList<>(); for(int j = 0; j < npcDataList.size(); j++){ - dataList.add(IdentifierUtil.getIdentifierFromString(npcDataList.getString(j).get())); + dataList.add(MiddleEarth.fetchId(npcDataList.getString(j).get())); } this.npcDatasByRank.put(rank, dataList); } catch (Exception ignored){ @@ -140,37 +136,34 @@ public Faction(String id, Integer factionSelectionOrderIndex, Boolean joinable, this.raceList = null; this.descriptions = null; - this.diplomaticAllies = diplomaticAllies; - this.diplomaticNeutrals = diplomaticNeutrals; - this.diplomaticEnemies = diplomaticEnemies; - verifyData(); } - public Faction(String name, Boolean joinable, Disposition disposition, FactionType factionType, Identifier parentFactionId, + public Faction(RegistryKey faction, Boolean joinable, DispositionType dispositionType, FactionType factionType, Identifier parentFactionId, List subFactions, HashMap> npcDatas, BannerData bannerData, SpawnDataHandler spawnDataHandler, List joinCommand, List leaveCommand, - List> diplomaticAllies, List> diplomaticNeutrals, List> diplomaticEnemies) + List initialDiplomacies) { - this.id = IdentifierUtil.getIdentifierFromString(name); + this.id = faction.getValue(); if(FactionSelectionOrderIndexPerDisposition == null) FactionSelectionOrderIndexPerDisposition = new HashMap<>(); - if(FactionSelectionOrderIndexPerDisposition.containsKey(disposition)){ - this.factionSelectionOrderIndex = FactionSelectionOrderIndexPerDisposition.get(disposition).size(); - List orderList = new ArrayList<>(FactionSelectionOrderIndexPerDisposition.get(disposition)); + if(FactionSelectionOrderIndexPerDisposition.containsKey(dispositionType)){ + this.factionSelectionOrderIndex = FactionSelectionOrderIndexPerDisposition.get(dispositionType).size(); + List orderList = new ArrayList<>(FactionSelectionOrderIndexPerDisposition.get(dispositionType)); orderList.add(this.factionSelectionOrderIndex); - FactionSelectionOrderIndexPerDisposition.put(disposition, orderList); + FactionSelectionOrderIndexPerDisposition.put(dispositionType, orderList); } else { int initialIndex = 0; this.factionSelectionOrderIndex = initialIndex; - FactionSelectionOrderIndexPerDisposition.put(disposition, List.of(initialIndex)); + FactionSelectionOrderIndexPerDisposition.put(dispositionType, List.of(initialIndex)); } + this.initialDiplomacies = initialDiplomacies; this.translatableKey = "faction.".concat(this.id.toTranslationKey()); this.joinable = joinable; - this.disposition = disposition; + this.dispositionType = dispositionType; this.factionType = factionType; this.parentFactionId = parentFactionId; this.subFactions = subFactions; @@ -193,24 +186,6 @@ public Faction(String name, Boolean joinable, Disposition disposition, FactionTy this.raceList = null; this.descriptions = null; - this.diplomaticAllies = new ArrayList<>(); - for(var diplomaticAlly : diplomaticAllies) - this.diplomaticAllies.add(diplomaticAlly.getValue()); - - this.diplomaticNeutrals = new ArrayList<>(); - for(var diplomaticNeutral : diplomaticNeutrals) - if(!this.diplomaticAllies.contains(diplomaticNeutral.getValue())) - this.diplomaticNeutrals.add(diplomaticNeutral.getValue()); - else - MiddleEarth.LOGGER.logError("FACTION CONSTRUCTOR ERROR : The faction %s already contain %s in the ally diplomatic fields. Please keep each list values distincts.".formatted(id, diplomaticNeutral.getValue())); - - this.diplomaticEnemies = new ArrayList<>(); - for(var diplomaticEnemy : diplomaticEnemies) - if(!this.diplomaticAllies.contains(diplomaticEnemy.getValue()) && !this.diplomaticEnemies.contains(diplomaticEnemy.getValue())) - this.diplomaticEnemies.add(diplomaticEnemy.getValue()); - else - MiddleEarth.LOGGER.logError("FACTION CONSTRUCTOR ERROR : The faction %s already contain %s in the ally or neutral diplomatic fields. Please keep each list values distincts.".formatted(id, diplomaticEnemy.getValue())); - verifyData(); } @@ -273,7 +248,7 @@ public Faction getParentFaction(RegistryWrapper.WrapperLookup lookup){ if(factionType != FactionType.SUBFACTION || parentFactionId == null) return null; try{ - Faction test = lookup.getOrThrow(FactionsME.KEY).getOrThrow(RegistryKey.of(FactionsME.KEY, this.parentFactionId)).value(); + Faction test = lookup.getOrThrow(DynamicRegistriesME.FACTION).getOrThrow(RegistryKey.of(DynamicRegistriesME.FACTION, this.parentFactionId)).value(); return test; } catch (Exception e){ return null; @@ -297,6 +272,10 @@ private Optional getSpawnDataNbt() { return this.spawnDataHandler.serializeNbt(); } + private List getInitialDiplomaciesNbtList() { + return initialDiplomacies; + } + public Optional getNpcValues() { if(this.npcDatasByRank == null || this.npcDatasByRank.isEmpty()) return Optional.empty(); @@ -328,18 +307,6 @@ public Optional> getLeaveCommands() { return Optional.of(this.leaveCommands); } - public List getDiplomaticAllies() { - return diplomaticAllies; - } - - public List getDiplomaticNeutrals() { - return diplomaticNeutrals; - } - - public List getDiplomaticEnemies() { - return diplomaticEnemies; - } - @Override public String toString() { return id.toString(); @@ -355,9 +322,9 @@ public NpcData getRandomGear(World world, NpcRank npcRank, Race race) { return npcDataList.get(random.nextInt(0, npcDataList.size())); } - public NpcGearData getPreviewGear(World world, Race selectedRace){ + public WeightedGearData getPreviewGear(World world, Race selectedRace){ if(selectedRace == null) - return NpcGearData.Create(); + return WeightedGearData.Create(); List identifiersToUse = new ArrayList<>(); identifiersToUse.addAll(getNpcPoolFromRank(NpcRank.MILITIA)); @@ -368,7 +335,7 @@ public NpcGearData getPreviewGear(World world, Race selectedRace){ List npcDataList = NpcDataLookup.getAllNpcDatasFromRace(world, identifiersToUse, selectedRace.getId()); if(npcDataList.isEmpty()) - return NpcGearData.Create(); + return WeightedGearData.Create(); Random random = new Random(); NpcData foundNpcData = npcDataList.get(random.nextInt(0, npcDataList.size())); return foundNpcData.getGear(); @@ -406,11 +373,11 @@ public Faction getSubfaction(World world, int index){ return getSubfactionById(world, subFactions.get(index)); } - public Disposition getDisposition(){ - return disposition; + public DispositionType getDisposition(){ + return dispositionType; } public String getDispositionString(){ - return disposition.name(); + return dispositionType.name(); } public String getFactionTypeString(){ return factionType.name(); @@ -444,7 +411,7 @@ public MutableText tryGetShortName() { public Faction getSubfactionById(World world, Identifier id) { if(subFactions == null) return null; - return world.getRegistryManager().getOrThrow(FactionsME.KEY).get(id); + return world.getRegistryManager().getOrThrow(DynamicRegistriesME.FACTION).get(id); } public List getRaces(World world) { @@ -467,20 +434,21 @@ public boolean isJoinable() { } public List getDescription() { - if(descriptions == null){ - descriptions = new ArrayList<>(); - boolean hasDescription = true; - String base = "description.%s.%s.description_%s".formatted(MiddleEarth.MOD_ID, id.getPath(), "%s"); - while(hasDescription){ - String langPath = base.formatted(descriptions.size()); - Text text = Text.translatable(langPath); - if(!Objects.equals(text.getString(), langPath)){ - descriptions.add(text); - } else { - hasDescription = false; - } + descriptions = new ArrayList<>(); + boolean hasDescription = true; + + String base = MiddleEarth.createAggregate('.', "description", MiddleEarth.MOD_ID, id.getPath(), "description_%s"); + + while(hasDescription){ + String langPath = base.formatted(descriptions.size()); + Text text = Text.translatable(langPath); + if(!Objects.equals(text.getString(), langPath)){ + descriptions.add(text); + } else { + hasDescription = false; } } + return descriptions; } @@ -500,7 +468,7 @@ public Text getRaceListText(World world) { } public int getSpawnAmount(){ - if(spawnDataHandler == null) + if(spawnDataHandler == null || spawnDataHandler.getSpawnList() == null) return 0; return spawnDataHandler.getSpawnList().size(); } @@ -521,4 +489,13 @@ public Identifier getRandomNpcDataIdentifier() { Random random = new Random(); return allNpcIds.get(random.nextInt(allNpcIds.size())); } + + public boolean isHostileToward(Identifier playerFaction) { + for(InitialDiplomacy diplomacy : initialDiplomacies){ + if(diplomacy.isHostileToward(playerFaction)){ + return true; + } + } + return false; + } } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/FactionLookup.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/FactionLookup.java index cde8e238d0..17b2a9ea98 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/FactionLookup.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/FactionLookup.java @@ -3,9 +3,9 @@ import net.minecraft.util.Identifier; import net.minecraft.world.World; import net.sevenstars.middleearth.exceptions.FactionIdentifierException; -import net.sevenstars.middleearth.resources.FactionsME; -import net.sevenstars.middleearth.resources.datas.Disposition; -import net.sevenstars.middleearth.resources.datas.FactionType; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; +import net.sevenstars.middleearth.resources.datas.common.FactionType; import java.util.ArrayList; import java.util.HashMap; @@ -14,20 +14,20 @@ public class FactionLookup { public static List getAllFactions(World world) { - return world.getRegistryManager().getOrThrow(FactionsME.KEY).stream().toList(); + return world.getRegistryManager().getOrThrow(DynamicRegistriesME.FACTION).stream().toList(); } public static Faction getFactionById(World world, Identifier id) throws FactionIdentifierException { - Faction faction = world.getRegistryManager().getOrThrow(FactionsME.KEY).get(id); + Faction faction = world.getRegistryManager().getOrThrow(DynamicRegistriesME.FACTION).get(id); if(faction == null) throw new FactionIdentifierException(); return faction; } - public static HashMap getFactionsByDisposition(World world, Disposition disposition){ + public static HashMap getFactionsByDisposition(World world, DispositionType dispositionType){ Stream factions = getAllJoinableFaction(world).stream(); HashMap foundFactions = new HashMap<>(); - for(Faction faction : factions.filter(x -> x.getDisposition() == disposition).toList()){ + for(Faction faction : factions.filter(x -> x.getDisposition() == dispositionType).toList()){ if(faction.getFactionType() == FactionType.FACTION) foundFactions.put(faction.getId(), faction); } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/data/InitialDiplomacy.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/data/InitialDiplomacy.java new file mode 100644 index 0000000000..1c550b5906 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/data/InitialDiplomacy.java @@ -0,0 +1,59 @@ +package net.sevenstars.middleearth.resources.datas.factions.data; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.nbt.NbtCompound; +import net.minecraft.nbt.NbtElement; +import net.minecraft.registry.RegistryKey; +import net.minecraft.util.Identifier; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.resources.datas.common.AffinityLevel; +import net.sevenstars.middleearth.resources.datas.factions.Faction; + +public class InitialDiplomacy { + + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + Codec.STRING.fieldOf("faction").forGetter(InitialDiplomacy::getFactionIdentifierForNbt), + Codec.STRING.fieldOf("affinity").forGetter(InitialDiplomacy::getAffinityForNbt) + ).apply(instance, InitialDiplomacy::new)); + + Identifier factionId; + AffinityLevel affinity; + + public InitialDiplomacy(String factionId, String affinity) { + this.factionId = MiddleEarth.fetchId(factionId); + this.affinity = AffinityLevel.valueOf(affinity); + } + + public InitialDiplomacy(RegistryKey factionRegistryKey, AffinityLevel affinity) { + this.factionId = factionRegistryKey.getValue(); + this.affinity = affinity; + } + + public InitialDiplomacy(NbtElement nbtElement) { + NbtCompound compound = nbtElement.asCompound().get(); + compound.get("faction"); + } + + public String getFactionIdentifierForNbt() { + return factionId.toString(); + } + + private String getAffinityForNbt() { + return this.affinity.toString(); + } + + public NbtElement getNbt() { + NbtCompound compound = new NbtCompound(); + compound.putString("faction", getFactionIdentifierForNbt()); + compound.putString("affinity", getAffinityForNbt()); + return compound; + } + + public boolean isHostileToward(Identifier faction) { + if(faction.equals(factionId)){ + return affinity == AffinityLevel.HOSTILE; + } + return false; + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/data/SpawnData.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/data/SpawnData.java index aace79b35a..1d7ae77e32 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/data/SpawnData.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/data/SpawnData.java @@ -4,7 +4,7 @@ import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.text.MutableText; import net.minecraft.text.Text; -import net.sevenstars.middleearth.utils.IdentifierUtil; +import net.sevenstars.middleearth.MiddleEarth; import net.sevenstars.middleearth.world.dimension.ModDimensions; import net.sevenstars.middleearth.world.map.MiddleEarthMapConfigs; import net.sevenstars.middleearth.world.map.MiddleEarthMapUtils; @@ -33,7 +33,7 @@ public class SpawnData { * @param isDynamic */ public SpawnData(String identifier, Vec3d coordinates, Boolean isDynamic) { - this.identifier = IdentifierUtil.getIdentifierFromString(identifier); + this.identifier = MiddleEarth.fetchId(identifier); this.isDynamic = isDynamic; if(isDynamic) diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/BrigandFactionPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/BrigandFactionPool.java deleted file mode 100644 index ca37eeb20b..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/BrigandFactionPool.java +++ /dev/null @@ -1,57 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.factions.pools; - -import net.minecraft.block.entity.BannerPatterns; -import net.minecraft.util.DyeColor; -import net.sevenstars.middleearth.resources.FactionsME; -import net.sevenstars.middleearth.resources.datas.Disposition; -import net.sevenstars.middleearth.resources.datas.FactionType; -import net.sevenstars.middleearth.resources.datas.factions.Faction; -import net.sevenstars.middleearth.resources.datas.factions.data.BannerData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcRank; -import net.sevenstars.middleearth.resources.datas.npcs.pools.BrigandNpcDataPool; - -import java.util.HashMap; -import java.util.List; - -public class BrigandFactionPool { - public final static Faction BRIGAND; - - static { - BRIGAND = new Faction(FactionsME.getName(FactionsME.BRIGAND), false, Disposition.NEUTRAL, FactionType.FACTION, null,null, - new HashMap<>(){{ - put(NpcRank.CIVILIAN, List.of( - BrigandNpcDataPool.BRIGAND_THUG - )); - put(NpcRank.MILITIA, List.of( - BrigandNpcDataPool.BRIGAND_THUG, - BrigandNpcDataPool.BRIGAND_THIEF - )); - put(NpcRank.SOLDIER, List.of( - BrigandNpcDataPool.BRIGAND_MERCENARY, - BrigandNpcDataPool.WILD_GOBLIN_GATHERER, - BrigandNpcDataPool.WILD_GOBLIN_WARRIOR, - BrigandNpcDataPool.WILD_GOBLIN_SCOUT - )); - put(NpcRank.KNIGHT, List.of( - BrigandNpcDataPool.BRIGAND_CHIEFTAIN - )); - put(NpcRank.VETERAN, List.of( - BrigandNpcDataPool.BRIGAND_CHIEFTAIN - )); - put(NpcRank.LEADER, List.of( - BrigandNpcDataPool.BRIGAND_CHIEFTAIN - )); - }}, - new BannerData(DyeColor.BLACK, List.of( - new BannerData.BannerPatternWithColor(BannerPatterns.GRADIENT_UP, DyeColor.GRAY), - new BannerData.BannerPatternWithColor(BannerPatterns.CROSS, DyeColor.RED), - new BannerData.BannerPatternWithColor(BannerPatterns.SKULL, DyeColor.WHITE) - )), - null , List.of(), List.of(), - List.of(), - List.of(), - List.of(FactionsME.LOTHLORIEN, FactionsME.GONDOR, FactionsME.ROHAN, FactionsME.SHIRE, FactionsME.LONGBEARDS, - FactionsME.DALE, FactionsME.MISTY_MOUNTAINS_GOBLINS, FactionsME.MORDOR, FactionsME.ISENGARD) - ); - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/DaleFactionPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/DaleFactionPool.java deleted file mode 100644 index c2c7bb1471..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/DaleFactionPool.java +++ /dev/null @@ -1,64 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.factions.pools; - -import net.minecraft.block.entity.BannerPatterns; -import net.minecraft.util.DyeColor; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.item.utils.BannerPatternsME; -import net.sevenstars.middleearth.resources.FactionsME; -import net.sevenstars.middleearth.resources.NpcME; -import net.sevenstars.middleearth.resources.datas.Disposition; -import net.sevenstars.middleearth.resources.datas.FactionType; -import net.sevenstars.middleearth.resources.datas.factions.Faction; -import net.sevenstars.middleearth.resources.datas.factions.data.BannerData; -import net.sevenstars.middleearth.resources.datas.factions.data.SpawnData; -import net.sevenstars.middleearth.resources.datas.factions.data.SpawnDataHandler; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcRank; -import net.sevenstars.middleearth.resources.datas.npcs.pools.DalishNpcDataPool; -import org.joml.Vector2d; - -import java.util.HashMap; -import java.util.List; - -public class DaleFactionPool { - public final static Faction DALE; - - static { - DALE = new Faction(FactionsME.getName(FactionsME.DALE), true, Disposition.GOOD, FactionType.FACTION, null,null, - new HashMap<>(){{ - put(NpcRank.CIVILIAN, List.of( - NpcME.HUMAN_CIVILIAN - )); - put(NpcRank.MILITIA, List.of( - DalishNpcDataPool.DALE_MILITIA - )); - put(NpcRank.SOLDIER, List.of( - DalishNpcDataPool.DALE_SOLDIER, - DalishNpcDataPool.DALE_SOLDIER_ARCHER - )); - put(NpcRank.KNIGHT, List.of( - DalishNpcDataPool.DALE_KNIGHT, - DalishNpcDataPool.DALE_KNIGHT_ARCHER - )); - put(NpcRank.VETERAN, List.of( - DalishNpcDataPool.DALE_VETERAN - )); - put(NpcRank.LEADER, List.of( - DalishNpcDataPool.DALE_SERGEANT - )); - }}, - new BannerData(DyeColor.WHITE, List.of( - new BannerData.BannerPatternWithColor(BannerPatternsME.CLOTH, DyeColor.BLUE), - new BannerData.BannerPatternWithColor(BannerPatterns.GRADIENT, DyeColor.BLUE), - new BannerData.BannerPatternWithColor(BannerPatternsME.BELL, DyeColor.YELLOW) - )), - new SpawnDataHandler(List.of( - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "dale.capital"), new Vector2d(2021, 727)), - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "dale.esgaroth"), new Vector2d(2007, 757)) - )), List.of(), List.of(), - List.of(FactionsME.LONGBEARDS_EREBOR), List.of(FactionsME.LOTHLORIEN, FactionsME.LONGBEARDS, FactionsME.GONDOR, FactionsME.ROHAN, - FactionsME.SHIRE), List.of(FactionsME.ISENGARD, FactionsME.MORDOR, FactionsME.MISTY_MOUNTAINS_GOBLINS, FactionsME.BRIGAND) - ); - } - -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/GondorFactionPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/GondorFactionPool.java deleted file mode 100644 index 038d111036..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/GondorFactionPool.java +++ /dev/null @@ -1,71 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.factions.pools; - -import net.minecraft.block.entity.BannerPatterns; -import net.minecraft.util.DyeColor; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.item.utils.BannerPatternsME; -import net.sevenstars.middleearth.resources.FactionsME; -import net.sevenstars.middleearth.resources.NpcME; -import net.sevenstars.middleearth.resources.datas.Disposition; -import net.sevenstars.middleearth.resources.datas.FactionType; -import net.sevenstars.middleearth.resources.datas.factions.Faction; -import net.sevenstars.middleearth.resources.datas.factions.data.BannerData; -import net.sevenstars.middleearth.resources.datas.factions.data.SpawnData; -import net.sevenstars.middleearth.resources.datas.factions.data.SpawnDataHandler; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcRank; -import net.sevenstars.middleearth.resources.datas.npcs.pools.GondorianNpcDataPool; -import org.joml.Vector2d; - -import java.util.HashMap; -import java.util.List; - -public class GondorFactionPool { - public final static Faction GONDOR; - - static { - GONDOR = new Faction(FactionsME.GONDOR.getValue().getPath(), true, Disposition.GOOD, FactionType.FACTION, null, null, - new HashMap<>(){{ - put(NpcRank.CIVILIAN, List.of( - NpcME.HUMAN_CIVILIAN - )); - put(NpcRank.MILITIA, List.of( - GondorianNpcDataPool.GONDOR_MILITIA - )); - put(NpcRank.SOLDIER, List.of( - GondorianNpcDataPool.GONDOR_SOLDIER - )); - put(NpcRank.KNIGHT, List.of( - GondorianNpcDataPool.GONDOR_KNIGHT - )); - put(NpcRank.VETERAN, List.of( - GondorianNpcDataPool.GONDOR_VETERAN, - GondorianNpcDataPool.GONDOR_KING_GUARD, - GondorianNpcDataPool.GONDOR_CITADEL_GUARD, - GondorianNpcDataPool.GONDOR_FOUNTAIN_GUARD - )); - put(NpcRank.LEADER, List.of( - GondorianNpcDataPool.GONDOR_LEADER - )); - }}, - new BannerData(DyeColor.WHITE, List.of( - new BannerData.BannerPatternWithColor(BannerPatternsME.CLOTH, DyeColor.GRAY), - new BannerData.BannerPatternWithColor(BannerPatterns.GRADIENT, DyeColor.BLACK), - new BannerData.BannerPatternWithColor(BannerPatternsME.TREE, DyeColor.WHITE) - )), - new SpawnDataHandler(List.of( - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "gondor.minas_tirith"), new Vector2d(1945, 1785)), - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "gondor.anorien"), new Vector2d(1930, 1735)), - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "gondor.ithilien"), new Vector2d(1975, 1700)), // Henneth Annun - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "gondor.lossarnach"), new Vector2d(1895, 1792)), // Erui Source - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "gondor.pelargir"), new Vector2d(1875, 1960)), - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "gondor.lamedon"), new Vector2d(1625, 1800)), // Linhir - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "gondor.lebennin"), new Vector2d(1715, 1955)), // Linhir - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "gondor.ringlo_vale"), new Vector2d(1530, 1730)), // Calembel - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "gondor.dol_amroth"), new Vector2d(1500, 1930)) - )), List.of(), List.of(), - List.of(FactionsME.ROHAN), List.of(FactionsME.LOTHLORIEN, FactionsME.LONGBEARDS, FactionsME.DALE, - FactionsME.SHIRE), List.of(FactionsME.ISENGARD, FactionsME.MORDOR, FactionsME.MISTY_MOUNTAINS_GOBLINS, FactionsME.BRIGAND) - ); - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/IsengardFactionPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/IsengardFactionPool.java deleted file mode 100644 index aaea1b0747..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/IsengardFactionPool.java +++ /dev/null @@ -1,63 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.factions.pools; - -import net.minecraft.block.entity.BannerPatterns; -import net.minecraft.util.DyeColor; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.item.utils.BannerPatternsME; -import net.sevenstars.middleearth.resources.FactionsME; -import net.sevenstars.middleearth.resources.datas.Disposition; -import net.sevenstars.middleearth.resources.datas.FactionType; -import net.sevenstars.middleearth.resources.datas.factions.Faction; -import net.sevenstars.middleearth.resources.datas.factions.data.BannerData; -import net.sevenstars.middleearth.resources.datas.factions.data.SpawnData; -import net.sevenstars.middleearth.resources.datas.factions.data.SpawnDataHandler; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcRank; -import net.sevenstars.middleearth.resources.datas.npcs.pools.IsengardNpcDataPool; -import org.joml.Vector2d; - -import java.util.HashMap; -import java.util.List; - -public class IsengardFactionPool { - public final static Faction ISENGARD; - static { - ISENGARD = new Faction("isengard", true, Disposition.EVIL, FactionType.FACTION, null,null, - new HashMap<>(){{ - put(NpcRank.CIVILIAN, List.of( - IsengardNpcDataPool.ISENGARD_ORC_SNAGA - )); - put(NpcRank.MILITIA, List.of( - IsengardNpcDataPool.ISENGARD_ORC_SNAGA, - IsengardNpcDataPool.ISENGARD_ORTHANC_GUARD - )); - put(NpcRank.SOLDIER, List.of( - IsengardNpcDataPool.ISENGARD_ORC_WARRIOR - )); - put(NpcRank.KNIGHT, List.of( - IsengardNpcDataPool.ISENGARD_URUK_HAI_SOLDIER, - IsengardNpcDataPool.ISENGARD_URUK_HAI_SCOUT - )); - put(NpcRank.VETERAN, List.of( - IsengardNpcDataPool.ISENGARD_URUK_HAI_VETERAN, - IsengardNpcDataPool.ISENGARD_URUK_HAI_BERSERKER - )); - put(NpcRank.LEADER, List.of( - IsengardNpcDataPool.ISENGARD_URUK_HAI_LEADER - )); - }}, - // TODO : add humans? No proper assets for them - new BannerData(DyeColor.WHITE, List.of( - new BannerData.BannerPatternWithColor(BannerPatternsME.CLOTH, DyeColor.GRAY), - new BannerData.BannerPatternWithColor(BannerPatterns.GRADIENT, DyeColor.BLACK), - new BannerData.BannerPatternWithColor(BannerPatternsME.HAND, DyeColor.WHITE) - )), - new SpawnDataHandler(List.of( - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "isengard.orthanc"), new Vector2d(1402, 1467)) - )), List.of(), List.of(), - List.of(FactionsME.MISTY_MOUNTAINS_GOBLINS, FactionsME.MORDOR), List.of(), - List.of(FactionsME.LOTHLORIEN, FactionsME.GONDOR, FactionsME.ROHAN, FactionsME.SHIRE, FactionsME.LONGBEARDS, FactionsME.DALE, FactionsME.BRIGAND) - ); - } - -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/LongbeardsFactionPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/LongbeardsFactionPool.java deleted file mode 100644 index 89855db7e8..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/LongbeardsFactionPool.java +++ /dev/null @@ -1,70 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.factions.pools; - -import net.minecraft.block.entity.BannerPatterns; -import net.minecraft.util.DyeColor; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.item.utils.BannerPatternsME; -import net.sevenstars.middleearth.resources.FactionsME; -import net.sevenstars.middleearth.resources.datas.Disposition; -import net.sevenstars.middleearth.resources.datas.FactionType; -import net.sevenstars.middleearth.resources.datas.factions.Faction; -import net.sevenstars.middleearth.resources.datas.factions.data.BannerData; -import net.sevenstars.middleearth.resources.datas.factions.data.SpawnData; -import net.sevenstars.middleearth.resources.datas.factions.data.SpawnDataHandler; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcRank; -import net.sevenstars.middleearth.resources.datas.npcs.pools.EreborNpcDataPool; -import org.joml.Vector2d; - -import java.util.HashMap; -import java.util.List; - -public class LongbeardsFactionPool { - public final static Faction LONGBEARDS; - public final static Faction EREBOR; - - static { - LONGBEARDS = new Faction(FactionsME.getName(FactionsME.LONGBEARDS), true, Disposition.GOOD, FactionType.FACTION, null, - List.of(FactionsME.LONGBEARDS_EREBOR.getValue()), - null, null, null, List.of(), List.of(), List.of(), List.of(), List.of()); - - EREBOR = new Faction(FactionsME.getName(FactionsME.LONGBEARDS_EREBOR), true, Disposition.GOOD, FactionType.SUBFACTION, LONGBEARDS.getId(),null, - new HashMap<>(){{ - put(NpcRank.CIVILIAN, List.of( - EreborNpcDataPool.EREBOR_MINER - )); - put(NpcRank.MILITIA, List.of( - EreborNpcDataPool.EREBOR_MINER, - EreborNpcDataPool.EREBOR_MILITIA - )); - put(NpcRank.SOLDIER, List.of( - EreborNpcDataPool.EREBOR_SOLDIER, - EreborNpcDataPool.EREBOR_ARCHER - )); - put(NpcRank.KNIGHT, List.of( - EreborNpcDataPool.EREBOR_ELITE - )); - put(NpcRank.VETERAN, List.of( - EreborNpcDataPool.EREBOR_VETERAN, - EreborNpcDataPool.EREBOR_GATEWARDEN - )); - put(NpcRank.LEADER, List.of( - EreborNpcDataPool.EREBOR_LEADER - )); - }}, - new BannerData(DyeColor.WHITE, List.of( - new BannerData.BannerPatternWithColor(BannerPatternsME.CLOTH, DyeColor.BLUE), - new BannerData.BannerPatternWithColor(BannerPatterns.GRADIENT_UP, DyeColor.GRAY), - new BannerData.BannerPatternWithColor(BannerPatternsME.DWARF_CROWN, DyeColor.WHITE) - )), - new SpawnDataHandler(List.of( - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, LONGBEARDS.getName().concat(".erebor.ravenhill")), new Vector2d(2017, 722)), - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, LONGBEARDS.getName().concat(".erebor.iron_hills")), new Vector2d(2355, 725)), - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, LONGBEARDS.getName().concat(".erebor.iron_hills_spring")), new Vector2d(2262, 782)) - )), List.of(), List.of(), - List.of(FactionsME.LONGBEARDS, FactionsME.DALE), List.of(FactionsME.LOTHLORIEN, FactionsME.GONDOR, FactionsME.ROHAN, FactionsME.SHIRE), - List.of(FactionsME.ISENGARD, FactionsME.MORDOR, FactionsME.MISTY_MOUNTAINS_GOBLINS, FactionsME.BRIGAND) - ); - - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/LothlorienFactionPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/LothlorienFactionPool.java deleted file mode 100644 index ea3dfe4080..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/LothlorienFactionPool.java +++ /dev/null @@ -1,63 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.factions.pools; - -import net.minecraft.block.entity.BannerPatterns; -import net.minecraft.util.DyeColor; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.item.utils.BannerPatternsME; -import net.sevenstars.middleearth.resources.FactionsME; -import net.sevenstars.middleearth.resources.datas.Disposition; -import net.sevenstars.middleearth.resources.datas.FactionType; -import net.sevenstars.middleearth.resources.datas.factions.Faction; -import net.sevenstars.middleearth.resources.datas.factions.data.BannerData; -import net.sevenstars.middleearth.resources.datas.factions.data.SpawnData; -import net.sevenstars.middleearth.resources.datas.factions.data.SpawnDataHandler; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcRank; -import net.sevenstars.middleearth.resources.datas.npcs.pools.LorienNpcDataPool; -import org.joml.Vector2d; - -import java.util.HashMap; -import java.util.List; - -public class LothlorienFactionPool { - public final static Faction LOTHLORIEN; - - static { - LOTHLORIEN = new Faction(FactionsME.getName(FactionsME.LOTHLORIEN), true, Disposition.GOOD, FactionType.FACTION, null, null, - new HashMap<>(){{ - put(NpcRank.CIVILIAN, List.of( - LorienNpcDataPool.LOTHLORIEN_MILITIA - )); - put(NpcRank.MILITIA, List.of( - LorienNpcDataPool.LOTHLORIEN_MILITIA - )); - put(NpcRank.SOLDIER, List.of( - LorienNpcDataPool.LOTHLORIEN_RANGER, - LorienNpcDataPool.LOTHLORIEN_RANGER_ARCHER, - LorienNpcDataPool.LOTHLORIEN_SOLDIER - )); - put(NpcRank.KNIGHT, List.of( - LorienNpcDataPool.LOTHLORIEN_KNIGHT, - LorienNpcDataPool.LOTHLORIEN_KNIGHT_ARCHER - )); - put(NpcRank.VETERAN, List.of( - LorienNpcDataPool.LOTHLORIEN_VETERAN - )); - put(NpcRank.LEADER, List.of( - LorienNpcDataPool.LOTHLORIEN_LORD - )); - }}, - new BannerData(DyeColor.WHITE, List.of( - new BannerData.BannerPatternWithColor(BannerPatternsME.CLOTH, DyeColor.YELLOW), - new BannerData.BannerPatternWithColor(BannerPatterns.GRADIENT, DyeColor.YELLOW), - new BannerData.BannerPatternWithColor(BannerPatternsME.STAR_AND_LEAF, DyeColor.WHITE) - )), - new SpawnDataHandler(List.of( - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "lothlorien.cerin_amroth"), new Vector2d(1614, 1215)) - )), List.of(), List.of(), - List.of(), List.of(FactionsME.GONDOR, FactionsME.ROHAN, FactionsME.SHIRE, FactionsME.DALE, FactionsME.LONGBEARDS), - List.of(FactionsME.ISENGARD, FactionsME.MORDOR, FactionsME.MISTY_MOUNTAINS_GOBLINS, FactionsME.BRIGAND) - ); - } - -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/MistyMountainsGoblinsFactionPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/MistyMountainsGoblinsFactionPool.java deleted file mode 100644 index 0b10d60ca3..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/MistyMountainsGoblinsFactionPool.java +++ /dev/null @@ -1,66 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.factions.pools; - -import net.minecraft.block.entity.BannerPatterns; -import net.minecraft.util.DyeColor; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.item.utils.BannerPatternsME; -import net.sevenstars.middleearth.resources.FactionsME; -import net.sevenstars.middleearth.resources.datas.Disposition; -import net.sevenstars.middleearth.resources.datas.FactionType; -import net.sevenstars.middleearth.resources.datas.factions.Faction; -import net.sevenstars.middleearth.resources.datas.factions.data.BannerData; -import net.sevenstars.middleearth.resources.datas.factions.data.SpawnData; -import net.sevenstars.middleearth.resources.datas.factions.data.SpawnDataHandler; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcRank; -import net.sevenstars.middleearth.resources.datas.npcs.pools.MistyMountainsGoblinsNpcDataPool; -import org.joml.Vector2d; - -import java.util.HashMap; -import java.util.List; - -public class MistyMountainsGoblinsFactionPool { - public final static Faction MISTY_MOUNTAINS_GOBLINS; - - static { - MISTY_MOUNTAINS_GOBLINS = new Faction(FactionsME.getName(FactionsME.MISTY_MOUNTAINS_GOBLINS), true, Disposition.EVIL, FactionType.FACTION, null,null, - new HashMap<>(){{ - put(NpcRank.CIVILIAN, List.of( - MistyMountainsGoblinsNpcDataPool.MISTY_GOBLIN_SNAGA - )); - put(NpcRank.MILITIA, List.of( - MistyMountainsGoblinsNpcDataPool.MISTY_GOBLIN_SNAGA - )); - put(NpcRank.SOLDIER, List.of( - MistyMountainsGoblinsNpcDataPool.MISTY_GOBLIN_WARRIOR, - MistyMountainsGoblinsNpcDataPool.MISTY_GOBLIN_ARCHER - )); - put(NpcRank.KNIGHT, List.of( - MistyMountainsGoblinsNpcDataPool.MISTY_HOBGOBLIN_SOLDIER - )); - put(NpcRank.VETERAN, List.of( - MistyMountainsGoblinsNpcDataPool.MISTY_HOBGOBLIN_VETERAN - )); - put(NpcRank.LEADER, List.of( - MistyMountainsGoblinsNpcDataPool.MISTY_HOBGOBLIN_LEADER - )); - }}, - new BannerData(DyeColor.WHITE, List.of( - new BannerData.BannerPatternWithColor(BannerPatternsME.CLOTH, DyeColor.BROWN), - new BannerData.BannerPatternWithColor(BannerPatterns.GRADIENT, DyeColor.BLACK), - new BannerData.BannerPatternWithColor(BannerPatterns.TRIANGLE_BOTTOM, DyeColor.LIGHT_GRAY), - new BannerData.BannerPatternWithColor(BannerPatterns.TRIANGLES_BOTTOM, DyeColor.GRAY), - new BannerData.BannerPatternWithColor(BannerPatternsME.EVIL_EYE, DyeColor.RED) - )), - new SpawnDataHandler(List.of( - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "misty_mountains_goblins.gundabad"), new Vector2d(1595, 640)), - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "misty_mountains_goblins.grey_mountains"), new Vector2d(1652, 640)), - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "misty_mountains_goblins.goblin_town"), new Vector2d(1581.5, 874.5)), - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "misty_mountains_goblins.moria"), new Vector2d(1521, 1138)) - )), List.of(), List.of(), - List.of(FactionsME.ISENGARD), List.of(FactionsME.MORDOR), - List.of(FactionsME.LOTHLORIEN, FactionsME.GONDOR, FactionsME.ROHAN, FactionsME.SHIRE, FactionsME.LONGBEARDS, FactionsME.DALE, FactionsME.BRIGAND) - ); - } - -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/MordorFactionPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/MordorFactionPool.java deleted file mode 100644 index 8bc3ebd59b..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/MordorFactionPool.java +++ /dev/null @@ -1,69 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.factions.pools; - -import net.minecraft.block.entity.BannerPatterns; -import net.minecraft.util.DyeColor; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.item.utils.BannerPatternsME; -import net.sevenstars.middleearth.resources.FactionsME; -import net.sevenstars.middleearth.resources.datas.Disposition; -import net.sevenstars.middleearth.resources.datas.FactionType; -import net.sevenstars.middleearth.resources.datas.factions.Faction; -import net.sevenstars.middleearth.resources.datas.factions.data.BannerData; -import net.sevenstars.middleearth.resources.datas.factions.data.SpawnData; -import net.sevenstars.middleearth.resources.datas.factions.data.SpawnDataHandler; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcRank; -import net.sevenstars.middleearth.resources.datas.npcs.pools.MordorNpcDataPool; -import org.joml.Vector2d; - -import java.util.HashMap; -import java.util.List; - -public class MordorFactionPool { - public final static Faction MORDOR; - - static { - MORDOR = new Faction(FactionsME.getName(FactionsME.MORDOR), true, Disposition.EVIL, FactionType.FACTION, null,null, - new HashMap<>(){{ - put(NpcRank.CIVILIAN, List.of( - MordorNpcDataPool.MORDOR_ORC_SNAGA - )); - put(NpcRank.MILITIA, List.of( - MordorNpcDataPool.MORDOR_BLACK_NUMENOREAN, - MordorNpcDataPool.MORDOR_ORC_SNAGA - )); - put(NpcRank.SOLDIER, List.of( - MordorNpcDataPool.MORDOR_ORC_MILITIA, - MordorNpcDataPool.MORDOR_ORC_SCOUT, - MordorNpcDataPool.MORDOR_ORC_SOLDIER - )); - put(NpcRank.KNIGHT, List.of( - MordorNpcDataPool.MORDOR_BLACK_URUK_SOLDIER - )); - put(NpcRank.VETERAN, List.of( - MordorNpcDataPool.MORDOR_BLACK_URUK_VETERAN, - MordorNpcDataPool.MORDOR_BLACK_URUK_VETERAN_ARCHER - )); - put(NpcRank.LEADER, List.of( - MordorNpcDataPool.MORDOR_BLACK_URUK_LEADER - )); - }}, - new BannerData(DyeColor.BLACK, List.of( - new BannerData.BannerPatternWithColor(BannerPatternsME.CLOTH, DyeColor.GRAY), - new BannerData.BannerPatternWithColor(BannerPatterns.GRADIENT, DyeColor.BLACK), - new BannerData.BannerPatternWithColor(BannerPatterns.TRIANGLE_BOTTOM, DyeColor.BLACK), - new BannerData.BannerPatternWithColor(BannerPatternsME.SMALL_CIRCLE, DyeColor.ORANGE), - new BannerData.BannerPatternWithColor(BannerPatternsME.EYE_OF_SAURON, DyeColor.RED) - )), - new SpawnDataHandler(List.of( - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "mordor.gorgoroth"), new Vector2d(2161, 1717)), - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "mordor.black_gates"), new Vector2d(2010, 1608)), - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "mordor.minas_morgul"), new Vector2d(2029, 1770)), - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "mordor.nurn"), new Vector2d(2345, 1915)), - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "mordor.dol_guldur"), new Vector2d(1793, 1210)) - )), List.of(), List.of(), - List.of(FactionsME.ISENGARD), List.of(FactionsME.MISTY_MOUNTAINS_GOBLINS), - List.of(FactionsME.LOTHLORIEN, FactionsME.GONDOR, FactionsME.ROHAN, FactionsME.SHIRE, FactionsME.LONGBEARDS, FactionsME.DALE, FactionsME.BRIGAND) - ); - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/RohanFactionPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/RohanFactionPool.java deleted file mode 100644 index 2037ab4c73..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/RohanFactionPool.java +++ /dev/null @@ -1,67 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.factions.pools; - -import net.minecraft.block.entity.BannerPatterns; -import net.minecraft.util.DyeColor; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.item.utils.BannerPatternsME; -import net.sevenstars.middleearth.resources.FactionsME; -import net.sevenstars.middleearth.resources.NpcME; -import net.sevenstars.middleearth.resources.datas.Disposition; -import net.sevenstars.middleearth.resources.datas.FactionType; -import net.sevenstars.middleearth.resources.datas.factions.Faction; -import net.sevenstars.middleearth.resources.datas.factions.data.BannerData; -import net.sevenstars.middleearth.resources.datas.factions.data.SpawnData; -import net.sevenstars.middleearth.resources.datas.factions.data.SpawnDataHandler; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcRank; -import net.sevenstars.middleearth.resources.datas.npcs.pools.RohirricNpcDataPool; -import org.joml.Vector2d; - -import java.util.HashMap; -import java.util.List; - -public class RohanFactionPool { - public final static Faction ROHAN; - - static { - ROHAN = new Faction(FactionsME.getName(FactionsME.ROHAN), true, Disposition.GOOD, FactionType.FACTION, null,null, - new HashMap<>(){{ - put(NpcRank.CIVILIAN, List.of( - NpcME.HUMAN_CIVILIAN - )); - put(NpcRank.MILITIA, List.of( - RohirricNpcDataPool.ROHAN_MILITIA - )); - put(NpcRank.SOLDIER, List.of( - RohirricNpcDataPool.ROHAN_SOLDIER - )); - put(NpcRank.KNIGHT, List.of( - RohirricNpcDataPool.ROHAN_KNIGHT - )); - put(NpcRank.VETERAN, List.of( - RohirricNpcDataPool.ROHAN_KNIGHT, - RohirricNpcDataPool.ROHAN_ROYAL_GUARD - )); - put(NpcRank.LEADER, List.of( - RohirricNpcDataPool.ROHAN_HORSE_LORD, - RohirricNpcDataPool.ROHAN_EORLING_MARSHAL - )); - }}, - new BannerData(DyeColor.WHITE, List.of( - new BannerData.BannerPatternWithColor(BannerPatternsME.CLOTH, DyeColor.GREEN), - new BannerData.BannerPatternWithColor(BannerPatterns.GRADIENT, DyeColor.LIME), - new BannerData.BannerPatternWithColor(BannerPatternsME.HORSE_HEAD, DyeColor.WHITE) - )), - new SpawnDataHandler(List.of( - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "rohan.edoras"), new Vector2d(1525, 1600)), - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "rohan.helms_deep"), new Vector2d(1470, 1555)), // Westfold - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "rohan.westemnet"), new Vector2d(1525, 1525)), - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "rohan.aldburg"), new Vector2d(1600, 1660)), // Eastfold - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "rohan.eastemnet"), new Vector2d(1715, 1575)), - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "rohan.the_wold"), new Vector2d(1675, 1475)) - )), List.of(), List.of(), - List.of(FactionsME.GONDOR), List.of(FactionsME.LOTHLORIEN, FactionsME.LONGBEARDS, FactionsME.DALE, - FactionsME.SHIRE), List.of(FactionsME.ISENGARD, FactionsME.MORDOR, FactionsME.MISTY_MOUNTAINS_GOBLINS, FactionsME.BRIGAND) - ); - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/ShireFactionPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/ShireFactionPool.java deleted file mode 100644 index 4da6c892b3..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/factions/pools/ShireFactionPool.java +++ /dev/null @@ -1,64 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.factions.pools; - -import net.minecraft.block.entity.BannerPatterns; -import net.minecraft.util.DyeColor; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.item.utils.BannerPatternsME; -import net.sevenstars.middleearth.resources.FactionsME; -import net.sevenstars.middleearth.resources.NpcME; -import net.sevenstars.middleearth.resources.datas.Disposition; -import net.sevenstars.middleearth.resources.datas.FactionType; -import net.sevenstars.middleearth.resources.datas.factions.Faction; -import net.sevenstars.middleearth.resources.datas.factions.data.BannerData; -import net.sevenstars.middleearth.resources.datas.factions.data.SpawnData; -import net.sevenstars.middleearth.resources.datas.factions.data.SpawnDataHandler; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcRank; -import net.sevenstars.middleearth.resources.datas.npcs.pools.ShireNpcDataPool; -import org.joml.Vector2d; - -import java.util.HashMap; -import java.util.List; - -public class ShireFactionPool { - public final static Faction SHIRE; - - static { - SHIRE = new Faction(FactionsME.getName(FactionsME.SHIRE), true, Disposition.GOOD, FactionType.FACTION, null,null, - new HashMap<>(){{ - put(NpcRank.CIVILIAN, List.of( - NpcME.HOBBIT_CIVILIAN - )); - put(NpcRank.MILITIA, List.of( - ShireNpcDataPool.SHIRE_MILITIA - )); - put(NpcRank.SOLDIER, List.of( - ShireNpcDataPool.SHIRE_SHIRRIFF - )); - put(NpcRank.KNIGHT, List.of( - ShireNpcDataPool.SHIRE_SHIRRIFF - )); - put(NpcRank.VETERAN, List.of( - ShireNpcDataPool.SHIRE_SHIRRIFF - )); - put(NpcRank.LEADER, List.of( - ShireNpcDataPool.SHIRE_SHIRRIFF - )); - }}, - new BannerData(DyeColor.WHITE, List.of( - new BannerData.BannerPatternWithColor(BannerPatternsME.CLOTH, DyeColor.LIME), - new BannerData.BannerPatternWithColor(BannerPatterns.GRADIENT, DyeColor.LIME), - new BannerData.BannerPatternWithColor(BannerPatterns.CIRCLE, DyeColor.YELLOW), - new BannerData.BannerPatternWithColor(BannerPatternsME.PIPE, DyeColor.BROWN) - )), - new SpawnDataHandler(List.of( - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "shire.hobbiton"), new Vector2d(933, 900)), - new SpawnData(Identifier.of(MiddleEarth.MOD_ID, "shire.willowbottom"), new Vector2d(981, 970)) - )), List.of(), List.of(), - List.of(), - List.of(FactionsME.LOTHLORIEN, FactionsME.GONDOR, FactionsME.ROHAN, FactionsME.LONGBEARDS, FactionsME.DALE), - List.of(FactionsME.MISTY_MOUNTAINS_GOBLINS, FactionsME.MORDOR, FactionsME.ISENGARD, FactionsME.BRIGAND) - ); - } - -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/NpcData.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/NpcData.java index 267aa866a2..7475c02114 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/NpcData.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/NpcData.java @@ -7,20 +7,20 @@ import net.minecraft.registry.RegistryKey; import net.minecraft.util.Identifier; import net.minecraft.world.World; +import net.sevenstars.api.dtos.WeightedPool; import net.sevenstars.middleearth.entity.npcs.NpcEntity; -import net.sevenstars.middleearth.resources.NpcTextureDatasME; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; import net.sevenstars.middleearth.resources.datas.attributes.AttributePool; import net.sevenstars.middleearth.resources.datas.factions.Faction; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcTextureData; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedGearData; +import net.sevenstars.middleearth.resources.datas.texture_presets.TexturePresetDataPool; import net.sevenstars.middleearth.resources.datas.races.Race; import net.sevenstars.middleearth.resources.datas.races.RaceLookup; -import net.sevenstars.middleearth.resources.datas.races.data.EntityCategory; +import net.sevenstars.middleearth.resources.datas.common.EntityCategories; import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import java.util.Random; public class NpcData { public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( @@ -28,7 +28,7 @@ public class NpcData { Identifier.CODEC.fieldOf("race").forGetter(NpcData::getRace), Identifier.CODEC.fieldOf("faction").forGetter(NpcData::getFaction), Identifier.CODEC.fieldOf("base_npc_texture").forGetter(NpcData::getNpcTextureDataValue), - NbtCompound.CODEC.fieldOf("gears").forGetter(NpcData::getGearDataValues), + NbtCompound.CODEC.fieldOf("gear").forGetter(NpcData::getGearDataValues), NbtCompound.CODEC.fieldOf("npc_attributes").forGetter(NpcData::getNpcAttributePool) ).apply(instance, NpcData::new)); @@ -36,8 +36,8 @@ public class NpcData { private final Identifier raceId; private final Identifier factionId; private final Identifier npcTextureKey; - private final List gearDatas; - private final HashMap npcAttributePools; + private final WeightedPool gearDatas; + private final HashMap npcAttributePools; public NpcData(Identifier id, Identifier raceId, Identifier factionId, Identifier npcTextureKey, NbtCompound gearDatas, NbtCompound npcAttributes){ this.id = id; @@ -46,27 +46,27 @@ public NpcData(Identifier id, Identifier raceId, Identifier factionId, Identifie this.npcTextureKey = npcTextureKey; NbtList npcGears = gearDatas.getList("pool").get(); - List npcGearDatas = new ArrayList<>(); + List weightedGearData = new ArrayList<>(); for(int j = 0; j < npcGears.size(); j++) { NbtCompound compound = npcGears.getCompound(j).get(); - npcGearDatas.add(NpcGearData.readNbt(compound)); + weightedGearData.add(WeightedGearData.readNbt(compound)); } - this.gearDatas = npcGearDatas; + this.gearDatas = new WeightedPool<>(weightedGearData); this.npcAttributePools = new HashMap<>(); - for(var category : EntityCategory.values()){ + for(var category : EntityCategories.values()){ if(npcAttributes.contains(category.name())){ this.npcAttributePools.put(category, new AttributePool(npcAttributes.getCompound(category.name()).get())); } } } - public NpcData(Identifier id, Race race, RegistryKey faction, RegistryKey npcTextureKey, List gearDatas, HashMap npcAttributePools){ + public NpcData(Identifier id, RegistryKey race, RegistryKey faction, RegistryKey npcTextureKey, List weightedGearData, HashMap npcAttributePools){ this.id = id; - this.raceId = race.getId(); + this.raceId = race.getValue(); this.factionId = faction.getValue(); this.npcTextureKey = npcTextureKey.getValue(); - this.gearDatas = gearDatas; + this.gearDatas = new WeightedPool<>(weightedGearData); this.npcAttributePools = npcAttributePools; } @@ -84,8 +84,8 @@ public Identifier getFaction() { private NbtCompound getGearDataValues() { NbtCompound nbt = new NbtCompound(); NbtList gears = new NbtList(); - for(NpcGearData npcGearData : this.gearDatas){ - gears.add(NpcGearData.createNbt(npcGearData)); + for(WeightedGearData weightedGearData : this.gearDatas.elements){ + gears.add(weightedGearData.getNbt()); } nbt.put("pool", gears); return nbt; @@ -95,16 +95,12 @@ public String getName(){ return id.toTranslationKey("npc_data"); } - public NpcGearData getGear() { + public WeightedGearData getGear() { if(gearDatas == null) return null; - - if(gearDatas.size() == 1) - return gearDatas.getFirst(); - - Random random = new Random(); - return gearDatas.get(random.nextInt(0, gearDatas.size())); + return gearDatas.getRandom(); } + private NbtCompound getNpcAttributePool() { if(npcAttributePools == null) return null; @@ -118,8 +114,8 @@ private NbtCompound getNpcAttributePool() { private Identifier getNpcTextureDataValue() { return npcTextureKey; } - public NpcTextureData getNpcTextureData(World world) { - return world.getRegistryManager().getOrThrow(NpcTextureDatasME.KEY).get(npcTextureKey); + public TexturePresetDataPool getNpcTextureData(World world) { + return world.getRegistryManager().getOrThrow(DynamicRegistriesME.TEXTURE_PRESETS).get(npcTextureKey); } @@ -128,9 +124,9 @@ public void applyAttributes(NpcEntity npcEntity) { Race race = RaceLookup.getRace(npcEntity.getWorld(), raceId); if(race != null) race.applyNpcAttributes(npcEntity); - EntityCategory category = npcEntity.getNpcCategory(); - if(npcAttributePools.containsKey(EntityCategory.SHARED)) - npcAttributePools.get(EntityCategory.SHARED).apply(npcEntity); + EntityCategories category = npcEntity.getNpcCategory(); + if(npcAttributePools.containsKey(EntityCategories.SHARED)) + npcAttributePools.get(EntityCategories.SHARED).apply(npcEntity); if(npcAttributePools.containsKey(category)) npcAttributePools.get(category).apply(npcEntity); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/NpcDataLookup.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/NpcDataLookup.java index 46bfc8e604..3c800c2d71 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/NpcDataLookup.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/NpcDataLookup.java @@ -1,16 +1,16 @@ package net.sevenstars.middleearth.resources.datas.npcs; -import net.sevenstars.middleearth.resources.NpcME; import net.minecraft.registry.Registry; import net.minecraft.util.Identifier; import net.minecraft.world.World; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; import java.util.ArrayList; import java.util.List; public class NpcDataLookup { public static List getAllNpcDatas(World world, List ids) { - Registry registry = world.getRegistryManager().getOrThrow(NpcME.KEY); + Registry registry = world.getRegistryManager().getOrThrow(DynamicRegistriesME.NPC); List list = new ArrayList<>(); for(Identifier id : ids){ list.add(registry.get(id)); @@ -28,6 +28,6 @@ public static List getAllNpcDatasFromRace(World world, List return list; } public static NpcData getNpcData(World world, Identifier id) { - return world.getRegistryManager().getOrThrow(NpcME.KEY).get(id); + return world.getRegistryManager().getOrThrow(DynamicRegistriesME.NPC).get(id); } } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/NpcUtil.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/NpcUtil.java index d9a08ffd19..651ea35eef 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/NpcUtil.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/NpcUtil.java @@ -1,14 +1,14 @@ package net.sevenstars.middleearth.resources.datas.npcs; import net.sevenstars.middleearth.item.items.weapons.ReachWeaponItem; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearData; +import net.sevenstars.middleearth.resources.datas.npcs.data.WeightedGearData; import net.minecraft.entity.EquipmentSlot; import net.minecraft.entity.LivingEntity; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; public class NpcUtil { - public static void equipAll(LivingEntity entity, NpcGearData data) { + public static void equipAll(LivingEntity entity, WeightedGearData data) { entity.equipStack(EquipmentSlot.HEAD, data.get(EquipmentSlot.HEAD)); entity.equipStack(EquipmentSlot.CHEST, data.get(EquipmentSlot.CHEST)); entity.equipStack(EquipmentSlot.LEGS, data.get(EquipmentSlot.LEGS)); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/NpcGearItemData.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/GearItemData.java similarity index 69% rename from middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/NpcGearItemData.java rename to middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/GearItemData.java index 9fa9928447..ffcf3eeafa 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/NpcGearItemData.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/GearItemData.java @@ -6,6 +6,8 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.nbt.NbtCompound; +import net.minecraft.nbt.NbtElement; +import net.minecraft.nbt.NbtString; import net.minecraft.registry.Registries; import net.minecraft.registry.tag.ItemTags; import net.minecraft.registry.tag.TagKey; @@ -23,13 +25,12 @@ import java.util.ArrayList; import java.util.List; -public class NpcGearItemData { +public class GearItemData { private final static String NO_HOOD_KEY = "no_hood"; private final static String NO_CAPE_KEY = "no_cape"; private Item item; private Integer color = null; private List colors = null; - private Integer weight = null; private BackAttachmentsME cape = null; private Integer capeColor = null; private List capeColors = null; @@ -40,54 +41,50 @@ public class NpcGearItemData { private Boolean noCape = null; private Boolean noHood = null; - public NpcGearItemData() { + public GearItemData() { this.item = Items.AIR; } - public NpcGearItemData(Item item) { + public GearItemData(Item item) { this.item = item; } - public NpcGearItemData(Identifier itemIdentifier) { + public GearItemData(Identifier itemIdentifier) { this.item = getItemFromId(itemIdentifier); } - public static NpcGearItemData create() { - return new NpcGearItemData(); + public static GearItemData create() { + return new GearItemData(); } - public static NpcGearItemData create(Item item) { - return new NpcGearItemData(item); + public static GearItemData create(Item item) { + return new GearItemData(item); } - public static NpcGearItemData create(Identifier itemIdentifier) { - return new NpcGearItemData(itemIdentifier); - } - public NpcGearItemData withWeight(int weight) { - this.weight = weight; - return this; + public static GearItemData create(Identifier itemIdentifier) { + return new GearItemData(itemIdentifier); } - public NpcGearItemData withColor(int color) { + public GearItemData withColor(int color) { this.color = color; return this; } - public NpcGearItemData withColors(List colors) { + public GearItemData withColors(List colors) { this.colors = colors; return this; } - public NpcGearItemData withoutCape() { + public GearItemData withoutCape() { this.noCape = true; return this; } - public NpcGearItemData withCape(BackAttachmentsME cape, int color) { + public GearItemData withCape(BackAttachmentsME cape, int color) { capeColor = color; return withCape(cape); } - public NpcGearItemData withCape(BackAttachmentsME cape, List colors) { + public GearItemData withCape(BackAttachmentsME cape, List colors) { this.capeColors = colors; return withCape(cape); } - public NpcGearItemData withCape(BackAttachmentsME cape) { + public GearItemData withCape(BackAttachmentsME cape) { if(cape == null){ this.noCape = true; } @@ -95,19 +92,19 @@ public NpcGearItemData withCape(BackAttachmentsME cape) { return this; } - public NpcGearItemData withoutHood() { + public GearItemData withoutHood() { this.noHood = true; return this; } - public NpcGearItemData withHood(HelmetAttachmentsME hood, int color) { + public GearItemData withHood(HelmetAttachmentsME hood, int color) { hoodColor = color; return withHood(hood); } - public NpcGearItemData withHood(HelmetAttachmentsME hood, List colors) { + public GearItemData withHood(HelmetAttachmentsME hood, List colors) { hoodColors = colors; return withHood(hood); } - public NpcGearItemData withHood(HelmetAttachmentsME hood) { + public GearItemData withHood(HelmetAttachmentsME hood) { if(hood == null){ this.noHood = true; } @@ -119,7 +116,7 @@ public NpcGearItemData withHood(HelmetAttachmentsME hood) { return this; } - public NpcGearItemData withHood(HelmetAttachmentsME hood, boolean isDown) { + public GearItemData withHood(HelmetAttachmentsME hood, boolean isDown) { withHood(hood); if(this.hood.getConstantState() == null) { this.isDown = isDown; @@ -138,7 +135,22 @@ private static Identifier getIdentifierFromItem(Item item){ return Registries.ITEM.getId(item); } - public ItemStack getItem(){ + private int getRandomColor(List listToFetch) { + if(listToFetch != null){ + int max = listToFetch.size() - 1; + return listToFetch.get(Random.create().nextBetween(0, max)); + } + return Color.PINK.getRGB(); + } + + public Integer getColor(){ + return this.color; + } + public Identifier getItemIdentifier() { + return getIdentifierFromItem(this.item); + } + + public ItemStack getItemStack(){ ItemStack itemStack = new ItemStack(this.item); if(this.color != null){ @@ -188,96 +200,11 @@ else if(hoodColors != null) return itemStack; } - private int getRandomColor(List listToFetch) { - if(listToFetch != null){ - int max = listToFetch.size() - 1; - return listToFetch.get(Random.create().nextBetween(0, max)); - } - return Color.PINK.getRGB(); - } + public GearItemData(NbtCompound nbt){ + this(Identifier.of(nbt.getString("id").get())); - public Integer getWeight(){ - Integer weight = this.weight; - if(weight == null) - weight = 1; - return weight; - } - public Integer getColor(){ - return this.color; - } - public Identifier getItemIdentifier() { - return getIdentifierFromItem(this.item); - } - - public static NbtCompound createNbt(NpcGearItemData gearItemData){ - NbtCompound nbt = new NbtCompound(); - nbt.putString("id", gearItemData.getItemIdentifier().toString()); - - Integer weight = gearItemData.weight; - if(weight != null) - nbt.putInt("weight", weight); - - Integer color = gearItemData.color; - if(color != null) - nbt.putInt("color", color); - - if(gearItemData.colors != null){ - int[] colors = gearItemData.colors.stream().mapToInt(Integer::intValue).toArray(); - - if(colors != null) - nbt.putIntArray("colors", colors); - } - - - Boolean noCape = gearItemData.noCape; - if(noCape != null) - nbt.putBoolean("no_cape", noCape); - - if(gearItemData.cape != null){ - nbt.putString("cape", gearItemData.cape.getName().toLowerCase()); - Integer capeColor = gearItemData.capeColor; - if(capeColor != null) - nbt.putInt("cape_color", capeColor); - - if(gearItemData.capeColors != null){ - int[] capeColors = gearItemData.capeColors.stream().mapToInt(Integer::intValue).toArray(); - if(capeColors != null) - nbt.putIntArray("cape_colors", capeColors); - } - } - - Boolean noHood = gearItemData.noHood; - if(noHood != null) - nbt.putBoolean("no_hood", noHood); - - if(gearItemData.hood != null){ - nbt.putString("hood", gearItemData.hood.getName().toLowerCase()); - if(gearItemData.isDown != null) - nbt.putBoolean("hood_is_down", gearItemData.isDown); - } - - Integer hoodColor = gearItemData.hoodColor; - if(hoodColor != null) - nbt.putInt("hood_color", hoodColor); - - if(gearItemData.hoodColors != null){ - int[] hoodColors = gearItemData.hoodColors.stream().mapToInt(Integer::intValue).toArray(); - if(hoodColors != null) - nbt.putIntArray("hood_colors", hoodColors); - } - - - return nbt; - } - - public static NpcGearItemData readNbt(NbtCompound nbt){ - Identifier id = Identifier.of(nbt.getString("id").get()); - NpcGearItemData npcGearItemData = NpcGearItemData.create(id); - if(nbt.get("weight") != null){ - npcGearItemData.weight = nbt.getInt("weight").get(); - } if(nbt.get("color") != null){ - npcGearItemData.color = nbt.getInt("color").get(); + color = nbt.getInt("color").get(); } if(nbt.get("colors") != null && nbt.getIntArray("colors").isPresent()){ int[] list = nbt.getIntArray("colors").get(); @@ -285,16 +212,16 @@ public static NpcGearItemData readNbt(NbtCompound nbt){ for (int j : list) { newColors.add(j); } - npcGearItemData.colors = newColors; + colors = newColors; } if(nbt.get("no_cape") != null){ - npcGearItemData.noCape = nbt.getBoolean("no_cape").get(); + noCape = nbt.getBoolean("no_cape").get(); } if(nbt.get("cape") != null){ - npcGearItemData.cape = BackAttachmentsME.valueOf(nbt.getString("cape").get().toUpperCase()); + cape = BackAttachmentsME.valueOf(nbt.getString("cape").get().toUpperCase()); if(nbt.getInt("cape_color").isPresent()){ - npcGearItemData.capeColor = nbt.getInt("cape_color").get(); + capeColor = nbt.getInt("cape_color").get(); } else if(nbt.get("cape_colors") != null && nbt.get("cape_colors").asNbtList().isPresent()){ var capeElements = nbt.get("cape_colors").asNbtList().get(); @@ -302,20 +229,20 @@ else if(nbt.get("cape_colors") != null && nbt.get("cape_colors").asNbtList().isP for (var element : capeElements){ newList.add(element.asInt().get()); } - npcGearItemData.capeColors = newList; + capeColors = newList; } } if(nbt.get("no_hood") != null){ - npcGearItemData.noHood = nbt.getBoolean("no_hood").get(); + noHood = nbt.getBoolean("no_hood").get(); } if(nbt.get("hood") != null){ - npcGearItemData.hood = HelmetAttachmentsME.valueOf(nbt.getString("hood").get().toUpperCase()); + hood = HelmetAttachmentsME.valueOf(nbt.getString("hood").get().toUpperCase()); if(nbt.get("hood_is_down") != null) - npcGearItemData.isDown = nbt.getBoolean("hood_is_down").get(); + isDown = nbt.getBoolean("hood_is_down").get(); if(nbt.get("hood_color") != null){ - npcGearItemData.hoodColor = nbt.getInt("hood_color").get(); + hoodColor = nbt.getInt("hood_color").get(); } else if(nbt.get("hood_colors") != null && nbt.get("hood_colors").asNbtList().isPresent()){ var hoodElements = nbt.get("hood_colors").asNbtList().get(); @@ -323,10 +250,59 @@ else if(nbt.get("hood_colors") != null && nbt.get("hood_colors").asNbtList().isP for (var element : hoodElements){ newList.add(element.asInt().get()); } - npcGearItemData.hoodColors = newList; + hoodColors = newList; + } + } + } + + public NbtElement getNbt(NbtCompound nbt) { + nbt.putString("id", getItemIdentifier().toString()); + + if(color != null) + nbt.putInt("color", color); + + if(colors != null){ + int[] colors = this.colors.stream().mapToInt(Integer::intValue).toArray(); + + if(colors != null) + nbt.putIntArray("colors", colors); + } + + if(noCape != null) + nbt.putBoolean("no_cape", noCape); + + if(cape != null){ + nbt.putString("cape", cape.getName().toLowerCase()); + if(capeColor != null) + nbt.putInt("cape_color", capeColor); + + if(capeColors != null){ + int[] capeColors = this.capeColors.stream().mapToInt(Integer::intValue).toArray(); + if(capeColors != null) + nbt.putIntArray("cape_colors", capeColors); } } - return npcGearItemData; + if(noHood != null) + nbt.putBoolean("no_hood", noHood); + + if(hood != null){ + nbt.putString("hood", hood.getName().toLowerCase()); + if(isDown != null) + nbt.putBoolean("hood_is_down", isDown); + } + + if(hoodColor != null) + nbt.putInt("hood_color", hoodColor); + + if(hoodColors != null){ + int[] hoodColors = this.hoodColors.stream().mapToInt(Integer::intValue).toArray(); + if(hoodColors != null) + nbt.putIntArray("hood_colors", hoodColors); + } + if(nbt.getKeys().size() == 1 && nbt.getString("id").isPresent()){ + return NbtString.of(nbt.getString("id").get()); + } + return nbt; } } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/GearSlotPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/GearSlotPool.java new file mode 100644 index 0000000000..63977a2e4b --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/GearSlotPool.java @@ -0,0 +1,95 @@ +package net.sevenstars.middleearth.resources.datas.npcs.data; + +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NbtCompound; +import net.minecraft.nbt.NbtElement; +import net.minecraft.nbt.NbtList; +import net.sevenstars.api.dtos.WeightedPool; +import net.sevenstars.middleearth.MiddleEarth; + +public class GearSlotPool { + private WeightedItemData weightedItemData; + private WeightedPool npcGearItemPool; + + public GearSlotPool() { + this.npcGearItemPool = new WeightedPool<>(); + } + + public static GearSlotPool create() { + return new GearSlotPool(); + } + + public static GearSlotPool create(WeightedItemData weightedItemData) { + return new GearSlotPool(weightedItemData); + } + + public GearSlotPool(WeightedItemData weightedItemData) { + this.weightedItemData = weightedItemData; + } + + public GearSlotPool add(WeightedItemData newGearData){ + if(this.npcGearItemPool == null) + this.npcGearItemPool = new WeightedPool<>(); + if(this.weightedItemData != null) + this.weightedItemData = null; + this.npcGearItemPool.add(newGearData); + return this; + } + + public boolean isPool(){ + return npcGearItemPool != null && !npcGearItemPool.isEmpty(); + } + + public static NbtElement createNbt(GearSlotPool slotData){ + if(slotData.isPool()){ + NbtCompound nbt = new NbtCompound(); + NbtList nbtList = new NbtList(); + for(WeightedItemData gearItemData : slotData.npcGearItemPool.elements){ + nbtList.add(gearItemData.getNbt()); + } + nbt.put("pool",nbtList); + return nbt; + } + else if(slotData.weightedItemData == null){ + return null; + } + var nbt = slotData.weightedItemData.getNbt(); + if(nbt.asString().isPresent()){ + return nbt; + } else if(nbt.asCompound().isPresent()) + return nbt.asCompound().get(); + return null; + } + + public static GearSlotPool readNbt(NbtElement nbt){ + if(nbt.asCompound().isPresent()){ + NbtCompound nbtCompound = nbt.asCompound().get(); + if(nbtCompound.get("pool") == null){ + return GearSlotPool.create(new WeightedItemData(nbtCompound)); + } + NbtList list = nbtCompound.getList("pool").get(); + GearSlotPool gearSlotPool = GearSlotPool.create(); + for(int i = 0; i < list.size(); i++){ + if(list.getString(i).isPresent()){ + gearSlotPool.add(new WeightedItemData(MiddleEarth.fetchId(list.getString(i).get()))); + } else if(list.getCompound(i).isPresent()){ + gearSlotPool.add(new WeightedItemData(list.getCompound(i).get())); + } + } + return gearSlotPool; + } else if(nbt.asString().isPresent()){ + return new GearSlotPool(new WeightedItemData(MiddleEarth.fetchId(nbt.asString().get()))); + } + + return null; + } + + public ItemStack getItemStack() { + if(isPool()){ + return npcGearItemPool.getRandom().getItem().getItemStack(); + } + if(weightedItemData != null) + return weightedItemData.getItem().getItemStack(); + return ItemStack.EMPTY; + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/NpcGearData.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/NpcGearData.java deleted file mode 100644 index 81a1d79f20..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/NpcGearData.java +++ /dev/null @@ -1,66 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.npcs.data; - -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.nbt.NbtCompound; -import net.sevenstars.middleearth.MiddleEarth; - -import java.util.HashMap; - -public class NpcGearData { - public final HashMap gears; - - public NpcGearData(){ - gears = new HashMap<>(); - } - public static NpcGearData create() { - return new NpcGearData(); - } - - public NpcGearData(NbtCompound gearNbt) { - this.gears = new HashMap<>(); - addSlot(gearNbt, EquipmentSlot.HEAD); - addSlot(gearNbt, EquipmentSlot.CHEST); - addSlot(gearNbt, EquipmentSlot.LEGS); - addSlot(gearNbt, EquipmentSlot.FEET); - addSlot(gearNbt, EquipmentSlot.MAINHAND); - addSlot(gearNbt, EquipmentSlot.OFFHAND); - } - - private void addSlot(NbtCompound gearNbt, EquipmentSlot equipmentSlot) { - if(gearNbt.get(equipmentSlot.asString()) != null){ - NbtCompound slotNbt = gearNbt.getCompound(equipmentSlot.asString()).get(); - this.gears.put(equipmentSlot, NpcGearSlotData.readNbt(slotNbt)); - } - } - - public NpcGearData add(EquipmentSlot slot, NpcGearSlotData slotData){ - if(gears.containsKey(slot)) { - MiddleEarth.LOGGER.logError("NpcGearData::Overwriting slotData - %s".formatted(slot.getName())); - } - gears.put(slot, slotData); - return this; - } - - public static NpcGearData Create() { - return NpcGearData.create(); - } - - public ItemStack get(EquipmentSlot slot) { - if(!gears.containsKey(slot)) - return new ItemStack(Items.AIR); - return gears.get(slot).getItemStack(); - } - - public static NbtCompound createNbt(NpcGearData gearData){ - NbtCompound nbt = new NbtCompound(); - for(EquipmentSlot slot : gearData.gears.keySet()){ - nbt.put(slot.getName().toLowerCase(), NpcGearSlotData.createNbt(gearData.gears.get(slot))); - } - return nbt; - } - public static NpcGearData readNbt(NbtCompound nbt){ - return new NpcGearData(nbt); - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/NpcGearSlotData.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/NpcGearSlotData.java deleted file mode 100644 index 3960c4ff26..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/NpcGearSlotData.java +++ /dev/null @@ -1,104 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.npcs.data; - -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.nbt.NbtList; - -import java.util.ArrayList; -import java.util.List; -import java.util.Random; - -public class NpcGearSlotData { - private NpcGearItemData npcGearItemData; - private List npcGearItemPool; - - public NpcGearSlotData() { - this.npcGearItemPool = new ArrayList<>(); - } - public static NpcGearSlotData create() { - return new NpcGearSlotData(); - } - public static NpcGearSlotData create(NpcGearItemData npcGearItemData) { - return new NpcGearSlotData(npcGearItemData); - } - - public NpcGearSlotData(NpcGearItemData npcGearItemData) { - this.npcGearItemData = npcGearItemData; - } - - public NpcGearSlotData add(NpcGearItemData newGearData){ - if(this.npcGearItemPool == null) - this.npcGearItemPool = new ArrayList<>(); - if(this.npcGearItemData != null) - this.npcGearItemData = null; - this.npcGearItemPool.add(newGearData); - return this; - } - - public boolean isPool(){ - return npcGearItemPool != null && !npcGearItemPool.isEmpty(); - } - - public static NbtCompound createNbt(NpcGearSlotData slotData){ - if(slotData.isPool()){ - NbtCompound nbt = new NbtCompound(); - NbtList nbtList = new NbtList(); - for(NpcGearItemData gearItemData : slotData.npcGearItemPool){ - nbtList.add(NpcGearItemData.createNbt(gearItemData)); - } - nbt.put("pool",nbtList); - return nbt; - } - else if(slotData.npcGearItemData == null){ - return null; - } - return NpcGearItemData.createNbt(slotData.npcGearItemData); - } - public static NpcGearSlotData readNbt(NbtCompound nbt){ - if(nbt.get("pool") == null){ - return NpcGearSlotData.create(NpcGearItemData.readNbt(nbt)); - } - NbtList list = nbt.getList("pool").get(); - NpcGearSlotData npcGearSlotData = NpcGearSlotData.create(); - for(int i = 0; i < list.size(); i++){ - npcGearSlotData.add(NpcGearItemData.readNbt(list.getCompound(i).get())); - } - return npcGearSlotData; - } - - public ItemStack getItemStack() { - if(isPool()){ - if(npcGearItemPool == null) - return null; - if(npcGearItemPool.size() == 1) - return npcGearItemPool.getFirst().getItem(); - return npcGearItemPool.get(findIndex()).getItem(); - } - return npcGearItemData.getItem(); - } - - private int findIndex() { - List indexes = new ArrayList<>(); - for(int i = 0; i < npcGearItemPool.size(); i ++){ - int weight = npcGearItemPool.get(i).getWeight(); - for(int j = 0; j < weight; j ++){ - indexes.add(i); - } - } - Random random = new Random(); - int current = random.nextInt(0, indexes.size()); - return indexes.get(current); - /* - // 2 different methods of weight randomness - int foundIndex = 0; - do{ - int weight = npcGearItemPool.get(indexes.get(current)).getWeight(); - if(current - weight < 0){ - foundIndex = indexes.get(current); - } - current -= weight; - } while(current >= 0); - return foundIndex; - */ - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/NpcTextureData.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/NpcTextureData.java deleted file mode 100644 index b01f1a14a6..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/NpcTextureData.java +++ /dev/null @@ -1,188 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.npcs.data; - -import com.mojang.serialization.Codec; -import com.mojang.serialization.codecs.RecordCodecBuilder; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.nbt.NbtList; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.resources.datas.races.data.EntityCategory; -import net.sevenstars.middleearth.resources.datas.races.data.NpcTextureDataPreset; -import net.sevenstars.middleearth.resources.datas.races.data.npctextures.NpcTextureType; -import net.sevenstars.middleearth.utils.IdentifierUtil; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Random; - -public class NpcTextureData { - public static final Codec CODEC = RecordCodecBuilder.create(instance -> { - return instance.group( - NbtCompound.CODEC.fieldOf("compound").forGetter(NpcTextureData::getNbt) - ).apply(instance, NpcTextureData::new); - }); - - HashMap> presetsByCategory; - - public NpcTextureData(NbtCompound compound) { - if(compound == null) return; - presetsByCategory = new HashMap<>(); - - for(EntityCategory category : EntityCategory.values()){ - var optList = compound.getList(category.name()); - if(optList.isEmpty()) continue;; - NbtList nbtListPresets = optList.get(); - List dataPresetList = new ArrayList<>(); - for(int i = 0; i < nbtListPresets.size(); i++){ - NpcTextureDataPreset fetchedPreset = new NpcTextureDataPreset(nbtListPresets.getCompound(i).get()); - dataPresetList.add(fetchedPreset); - } - presetsByCategory.put(category, dataPresetList); - } - } - - public NpcTextureData(HashMap> sourceDatas) { - presetsByCategory = sourceDatas; - } - - public static Identifier buildId(Identifier pattern, Identifier material) { - if(pattern == null || material == null) - return null; - return IdentifierUtil.create(pattern.getPath() + "_" + material.getPath()); - } - - public static Identifier buildAddonId(Identifier pattern, Identifier material) { - return IdentifierUtil.create(pattern.getPath() + "_addon_" + material.getPath()); - } - - public NbtCompound getNbt() { - NbtCompound newNbt = new NbtCompound(); - for(EntityCategory category : presetsByCategory.keySet()){ - List presets = presetsByCategory.get(category); - if(presets != null && !presets.isEmpty()){ - NbtList newNbtList = new NbtList(); - for (NpcTextureDataPreset preset : presets) { - newNbtList.add(preset.getNbt()); - } - newNbt.put(category.name(), newNbtList); - } - } - return newNbt; - } - - public static Identifier getRawMaterial(Identity identity, NpcTextureType npcTextureType) { - List materials = identity.preset.getMaterials(npcTextureType); - if(materials == null || materials.isEmpty()) - return null; - Random random = new Random(); - int materialIndex = random.nextInt(materials.size()); - return Identifier.of(MiddleEarth.MOD_ID, materials.get(materialIndex)); - } - - public static Identifier getRawPattern(Identity identity, NpcTextureType npcTextureType) { - List patterns = identity.preset.getPatterns(npcTextureType); - if(patterns == null || patterns.isEmpty()) - return null; - Random random = new Random(); - String value = patterns.get(random.nextInt(patterns.size())); - if(value.equals(NpcTextureDataPreset.EMPTY_VALUE_KEY)) - return null; - return Identifier.of(MiddleEarth.MOD_ID, value); - } - - public static Identifier getTextureWithMaterial(Identity identity, NpcTextureType npcTextureType) { - List patterns = identity.preset.getPatterns(npcTextureType); - List materials = identity.preset.getMaterials(npcTextureType); - if(patterns == null || patterns.isEmpty() || materials == null || materials.isEmpty()) - return null; - - Random random = new Random(); - int patternIndex = random.nextInt(patterns.size()); - int materialIndex = random.nextInt(materials.size()); - return Identifier.of(MiddleEarth.MOD_ID, patterns.get(patternIndex) + "_" + materials.get(materialIndex)); - } - - public Identifier getTextureWithMaterial(Identity identity, NpcTextureType npcTextureType, Identifier material) { - List patterns = identity.preset.getPatterns(npcTextureType); - Random random = new Random(); - int patternIndex = random.nextInt(patterns.size()); - return Identifier.of(MiddleEarth.MOD_ID, patterns.get(patternIndex) + "_" + material.getPath()); - } - - - public Boolean haveEmissiveEyes(Identity identity) { - return identity.preset.haveEmissiveEyes(); - } - - public EntityCategory getRandomCategory() { - Random random = new Random(); - boolean containsMale = this.presetsByCategory.containsKey(EntityCategory.MALE); - boolean containsFemale = this.presetsByCategory.containsKey(EntityCategory.FEMALE); - // Shared is not a valid sex - if(containsMale && containsFemale) - return (random.nextBoolean()) ? EntityCategory.MALE : EntityCategory.FEMALE; - else if(containsMale) - return EntityCategory.MALE; - else if(containsFemale) - return EntityCategory.FEMALE; - - return EntityCategory.MALE; - } - - public record Identity(EntityCategory category, NpcTextureDataPreset preset){ - public static Identity create(NpcTextureData data, EntityCategory entityCategory){ - if(!data.presetsByCategory.containsKey(entityCategory)) - return null; - - // TODO : get the right preset based on weight - List presets = data.presetsByCategory.get(entityCategory); - presets = feedSharedToPresets(data, presets); - - Random random = new Random(); - return new Identity(entityCategory, presets.get(random.nextInt(presets.size()))); - } - - public static Identity create(NpcTextureData data){ - EntityCategory entityCategory = data.getRandomCategory(); - if(!data.presetsByCategory.containsKey(entityCategory)) - return null; - - // TODO : get the right preset based on weight - List presets = data.presetsByCategory.get(entityCategory); - presets = feedSharedToPresets(data, presets); - - Random random = new Random(); - return new Identity(entityCategory, presets.get(random.nextInt(presets.size()))); - } - - private static List feedSharedToPresets(NpcTextureData data, List presets) { - if(data.presetsByCategory.containsKey(EntityCategory.SHARED)){ - var shared = data.presetsByCategory.get(EntityCategory.SHARED).getFirst(); - if(shared != null){ - for (NpcTextureDataPreset preset : presets) { - preset.withMaterialValues(NpcTextureType.SKIN, shared.getMaterials(NpcTextureType.SKIN)); - preset.withPatternValues(NpcTextureType.BODY, shared.getPatterns(NpcTextureType.BODY)); - preset.withPatternValues(NpcTextureType.HEAD, shared.getPatterns(NpcTextureType.HEAD)); - preset.withPatternValues(NpcTextureType.EAR, shared.getPatterns(NpcTextureType.EAR)); - preset.withPatternValues(NpcTextureType.NOSE, shared.getPatterns(NpcTextureType.NOSE)); - preset.withPatternValues(NpcTextureType.SCAR, shared.getPatterns(NpcTextureType.SCAR)); - - preset.withMaterialValues(NpcTextureType.HAIR, shared.getMaterials(NpcTextureType.HAIR)); - preset.withPatternValues(NpcTextureType.HAIR, shared.getPatterns(NpcTextureType.HAIR)); - preset.withPatternValues(NpcTextureType.BEARD, shared.getPatterns(NpcTextureType.BEARD)); - preset.withPatternValues(NpcTextureType.EYEBROW, shared.getPatterns(NpcTextureType.EYEBROW)); - preset.withEmissiveEyes(shared.haveEmissiveEyes()); - - preset.withMaterialValues(NpcTextureType.EYE, shared.getMaterials(NpcTextureType.EYE)); - preset.withPatternValues(NpcTextureType.EYE, shared.getPatterns(NpcTextureType.EYE)); - - preset.withMaterialValues(NpcTextureType.CLOTHING, shared.getMaterials(NpcTextureType.CLOTHING)); - preset.withPatternValues(NpcTextureType.CLOTHING, shared.getPatterns(NpcTextureType.CLOTHING)); - } - } - } - return presets; - } - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/WeightedGearData.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/WeightedGearData.java new file mode 100644 index 0000000000..f7d6c00cb6 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/WeightedGearData.java @@ -0,0 +1,84 @@ +package net.sevenstars.middleearth.resources.datas.npcs.data; + +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.nbt.NbtCompound; +import net.minecraft.nbt.NbtElement; +import net.sevenstars.api.dtos.WeightedItem; +import net.sevenstars.middleearth.MiddleEarth; + +import java.util.HashMap; + +public class WeightedGearData extends WeightedItem> { + public WeightedGearData(){ + item = new HashMap<>(); + } + + public static WeightedGearData create() { + return new WeightedGearData(); + } + + public WeightedGearData(NbtCompound gearNbt) { + this.item = new HashMap<>(); + + addSlot(gearNbt, EquipmentSlot.HEAD); + addSlot(gearNbt, EquipmentSlot.CHEST); + addSlot(gearNbt, EquipmentSlot.LEGS); + addSlot(gearNbt, EquipmentSlot.FEET); + addSlot(gearNbt, EquipmentSlot.MAINHAND); + addSlot(gearNbt, EquipmentSlot.OFFHAND); + } + + private void addSlot(NbtCompound gearNbt, EquipmentSlot equipmentSlot) { + if(gearNbt.get(equipmentSlot.asString().toLowerCase()) != null){ + if(gearNbt.get(equipmentSlot.asString().toLowerCase()) != null){ + NbtElement element = gearNbt.get(equipmentSlot.asString()); + this.item.put(equipmentSlot, GearSlotPool.readNbt(element)); + } + } + } + + public WeightedGearData add(EquipmentSlot slot, GearSlotPool slotData){ + if(item.containsKey(slot)) { + MiddleEarth.LOGGER.logError("NpcGearData::Overwriting slotData - %s".formatted(slot.getName())); + } + item.put(slot, slotData); + return this; + } + + public static WeightedGearData Create() { + return WeightedGearData.create(); + } + + public ItemStack get(EquipmentSlot slot) { + if(!item.containsKey(slot)) + return new ItemStack(Items.AIR); + var foundItem = item.get(slot); + if(foundItem == null ) + return new ItemStack(Items.AIR); + return foundItem.getItemStack(); + } + + @Override + public NbtElement getNbt(){ + NbtElement nbt = super.getNbt(); + if(nbt == null) + nbt = new NbtCompound(); + + for(EquipmentSlot slot : item.keySet()){ + nbt.asCompound().get().put(slot.getName().toLowerCase(), GearSlotPool.createNbt(item.get(slot))); + } + return nbt; + } + + @Override + public WeightedGearData withWeight(int newWeight) { + this.weight = newWeight; + return this; + } + + public static WeightedGearData readNbt(NbtCompound nbt){ + return new WeightedGearData(nbt); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/WeightedItemData.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/WeightedItemData.java new file mode 100644 index 0000000000..7bc43d3c79 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/data/WeightedItemData.java @@ -0,0 +1,105 @@ +package net.sevenstars.middleearth.resources.datas.npcs.data; + +import net.minecraft.item.Item; +import net.minecraft.nbt.NbtCompound; +import net.minecraft.nbt.NbtElement; +import net.minecraft.util.Identifier; +import net.sevenstars.api.dtos.WeightedItem; +import net.sevenstars.middleearth.item.utils.armor.backAttachments.BackAttachmentsME; +import net.sevenstars.middleearth.item.utils.armor.helmetAttachments.HelmetAttachmentsME; + +import java.awt.*; +import java.util.List; + +public class WeightedItemData extends WeightedItem { + public WeightedItemData() { + this.item = new GearItemData(); + } + public WeightedItemData(Item item) { + this.item = new GearItemData(item); + } + public WeightedItemData(Identifier itemIdentifier) { + this.item = new GearItemData(itemIdentifier); + } + public WeightedItemData(NbtElement element){ + super(element); + if(element.asString().isPresent()) + this.item = new GearItemData(Identifier.of(element.asString().get())); + else if(element.asCompound().isPresent()) + this.item = new GearItemData(element.asCompound().get()); + } + + public static WeightedItemData create() { + return new WeightedItemData(); + } + public static WeightedItemData create(Item item) { + return new WeightedItemData(item); + } + public static WeightedItemData create(Identifier itemIdentifier) { + return new WeightedItemData(itemIdentifier); + } + public WeightedItemData withWeight(int weight) { + this.weight = weight; + return this; + } + + public WeightedItemData withColor(int color) { + this.item.withColor(color); + return this; + } + + public WeightedItemData withColors(List colors) { + this.item.withColors(colors); + return this; + } + + public WeightedItemData withoutCape() { + this.item.withoutCape(); + return this; + } + public WeightedItemData withCape(BackAttachmentsME cape, int color) { + this.item.withCape(cape, color); + return this; + } + public WeightedItemData withCape(BackAttachmentsME cape, List colors) { + this.item.withCape(cape, colors); + return this; + } + + public WeightedItemData withCape(BackAttachmentsME cape) { + this.item.withCape(cape); + return this; + } + + public WeightedItemData withoutHood() { + this.item.withoutHood(); + return this; + } + public WeightedItemData withHood(HelmetAttachmentsME hood, int color) { + this.item.withHood(hood, color); + return this; + } + public WeightedItemData withHood(HelmetAttachmentsME hood, List colors) { + this.item.withHood(hood, colors); + return this; + } + public WeightedItemData withHood(HelmetAttachmentsME hood) { + this.item.withHood(hood); + return this; + } + + public WeightedItemData withHood(HelmetAttachmentsME hood, boolean isDown) { + this.item.withHood(hood, isDown); + return this; + } + + @Override + public NbtElement getNbt() { + NbtElement nbt = super.getNbt(); + if(nbt == null) + nbt = new NbtCompound(); + nbt = this.item.getNbt(nbt.asCompound().get()); + return nbt; + } + +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/BrigandNpcDataPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/BrigandNpcDataPool.java deleted file mode 100644 index b9e7c9037c..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/BrigandNpcDataPool.java +++ /dev/null @@ -1,405 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.npcs.pools; - -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.item.Items; -import net.minecraft.registry.RegistryKey; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.item.EquipmentItemsME; -import net.sevenstars.middleearth.item.ToolItemsME; -import net.sevenstars.middleearth.item.WeaponItemsME; -import net.sevenstars.middleearth.item.utils.armor.backAttachments.BackAttachmentsME; -import net.sevenstars.middleearth.item.utils.armor.helmetAttachments.HelmetAttachmentsME; -import net.sevenstars.middleearth.resources.FactionsME; -import net.sevenstars.middleearth.resources.NpcME; -import net.sevenstars.middleearth.resources.NpcTextureDatasME; -import net.sevenstars.middleearth.resources.RacesME; -import net.sevenstars.middleearth.resources.datas.factions.Faction; -import net.sevenstars.middleearth.resources.datas.npcs.NpcData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearItemData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearSlotData; - -import java.util.List; - -public class BrigandNpcDataPool { - private final static RegistryKey FACTION = FactionsME.BRIGAND; - private final static String FACTION_BASE = FACTION.getValue().getPath() + ".%s"; - - private final static int DEFAULT = 0x43403a; - private final static int DARKEST_RED = 0x321111; - private final static int DARK_BROWN = 0x2b1c17; - private final static int LIGHT_BROWN = 0x412f26; - private final static int DARK_ORANGE = 0x5d3309; - private final static int DARK_GREEN = 0x1b3220; - private final static int GREEN = 0x283d1a; - private final static int OLIVE_GREEN = 0x3c3e2a; - private final static int DARK_BLUE = 0x1e1e32; - private final static int BLUE = 0x294141; - private final static int PINK = 0x5d2b52; - - private static final int DARK_BROWN_GOBLIN = 0x4a3c34; - - public final static NpcData BRIGAND_THUG; - public final static NpcData BRIGAND_THIEF; - public final static NpcData BRIGAND_MERCENARY; - public final static NpcData BRIGAND_CHIEFTAIN; - - public final static NpcData WILD_GOBLIN_GATHERER; - public final static NpcData WILD_GOBLIN_WARRIOR; - public final static NpcData WILD_GOBLIN_SCOUT; - - public static List fetchAll() { - return List.of( - BRIGAND_THUG, - BRIGAND_THIEF, - BRIGAND_MERCENARY, - BRIGAND_CHIEFTAIN, - WILD_GOBLIN_GATHERER, - WILD_GOBLIN_WARRIOR, - WILD_GOBLIN_SCOUT - ); - } - - private static final List allColors = List.of(DEFAULT, DARK_BROWN, LIGHT_BROWN, DARK_GREEN, DARK_BLUE, DARKEST_RED, GREEN, BLUE, DARK_ORANGE); - static { - BRIGAND_THUG = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("thug")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR).withWeight(6)) - .add(NpcGearItemData.create(EquipmentItemsME.BYCOCKET).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.BYCOCKET).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.WOVEN_HAT)) - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_SKULLCAP).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_SKULLCAP).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON_CAP).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON_CAP).withColor(DARK_BROWN).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON_CAP).withColor(LIGHT_BROWN).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON_CAP).withColors(allColors)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_VEST).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.SURCOAT, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_VEST).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.SURCOAT, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_VEST).withCape(BackAttachmentsME.SURCOAT, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_SCALE_VEST).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.SURCOAT, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_SCALE_VEST).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.SURCOAT, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_SCALE_VEST).withCape(BackAttachmentsME.SURCOAT, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.SURCOAT, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.SURCOAT, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON).withCape(BackAttachmentsME.SURCOAT, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.SURCOAT, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.SURCOAT, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withCape(BackAttachmentsME.SURCOAT, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CAPE, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CAPE, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withCape(BackAttachmentsME.SURCOAT, allColors)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.MAIL_SKIRT).withWeight(3)) - - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withColor(DARK_BROWN).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withColor(LIGHT_BROWN).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_SKIRT).withColors(allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.ELVEN_ARMING_COAT).withColor(DARK_BROWN).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.ELVEN_ARMING_COAT).withColor(LIGHT_BROWN).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.ELVEN_ARMING_COAT).withColors(allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColor(DARK_BROWN).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColor(LIGHT_BROWN).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.ELVEN_ARMING_COAT).withColors(allColors)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.SHOES)) - .add(NpcGearItemData.create(EquipmentItemsME.STURDY_BOOTS)) - ) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.BRONZE_SWORD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.BRONZE_SPEAR).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.IRON_SPEAR).withWeight(2)) - .add(NpcGearItemData.create(Items.IRON_SWORD)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.HEATER_SHIELD).withWeight(4)) - .add(NpcGearItemData.create(WeaponItemsME.ROUND_SHIELD).withWeight(4)) - .add(NpcGearItemData.create(Items.AIR).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.CRUDE_DAGGER)) - .add(NpcGearItemData.create(WeaponItemsME.BRONZE_DAGGER)) - .add(NpcGearItemData.create(WeaponItemsME.IRON_DAGGER)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - BRIGAND_THIEF = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("thief")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.BYCOCKET).withHood(HelmetAttachmentsME.HOOD, allColors)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_VEST).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CLOAK, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_VEST).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CLOAK, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_VEST).withCape(BackAttachmentsME.CLOAK, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_SCALE_VEST).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CLOAK, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_SCALE_VEST).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CLOAK, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_SCALE_VEST).withCape(BackAttachmentsME.CLOAK, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CLOAK, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CLOAK, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON).withCape(BackAttachmentsME.CLOAK, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CLOAK, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CLOAK, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withCape(BackAttachmentsME.CLOAK, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CLOAK, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CLOAK, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withCape(BackAttachmentsME.CLOAK, allColors)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.SHOES)) - .add(NpcGearItemData.create(EquipmentItemsME.STURDY_BOOTS)) - ) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.IRON_DAGGER)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.IRON_DAGGER)) - .add(NpcGearItemData.create(Items.AIR).withWeight(2)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - BRIGAND_MERCENARY = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("mercenary")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COIF)) - .add(NpcGearItemData.create(EquipmentItemsME.KETTLE_HAT)) - .add(NpcGearItemData.create(EquipmentItemsME.OPEN_FACE_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.KETTLE_HAT_WITH_COIF)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_VEST).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CAPE, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_VEST).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CAPE, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_VEST).withCape(BackAttachmentsME.CAPE, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_SCALE_VEST).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CAPE, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_SCALE_VEST).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CAPE, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_SCALE_VEST).withCape(BackAttachmentsME.CAPE, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CAPE, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CAPE, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withCape(BackAttachmentsME.CAPE, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CAPE, allColors).withCape(BackAttachmentsME.TAN_FUR)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CAPE, allColors).withCape(BackAttachmentsME.TAN_FUR)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withCape(BackAttachmentsME.CAPE, allColors).withCape(BackAttachmentsME.BLACK_FUR)) - - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CAPE, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CAPE, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withCape(BackAttachmentsME.CAPE, allColors)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.SHOES)) - .add(NpcGearItemData.create(EquipmentItemsME.STURDY_BOOTS)) - ) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.STEEL_SWORD)) - .add(NpcGearItemData.create(WeaponItemsME.STEEL_SPEAR)) - .add(NpcGearItemData.create(ToolItemsME.STEEL_AXE)) - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_SWORD)) - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_SWORD)) - .add(NpcGearItemData.create(WeaponItemsME.DALISH_SWORD)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR).withWeight(4)) - .add(NpcGearItemData.create(WeaponItemsME.ROUND_SHIELD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.HEATER_SHIELD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_WOODEN_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_ROUND_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_BRACED_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_WOODEN_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - BRIGAND_CHIEFTAIN = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("chieftain")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_LEATHER_HELMET).withColor(DEFAULT).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_BRACED_LEATHER_HELMET).withColor(DEFAULT).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.SALLET).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_BRACED_HELMET).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.KETTLE_HAT_WITH_CLOSED_COIF).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_SEEKER_HELMET).withColor(DARK_BROWN).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_SEEKER_HELMET).withColor(LIGHT_BROWN).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_SEEKER_HELMET).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_NASAL_LEATHER_HELMET).withColor(DEFAULT)) - - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CAPE, DEFAULT).withCape(BackAttachmentsME.ORCISH_TAN_FUR_SURCOAT_WITH_BONE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CAPE, DEFAULT).withCape(BackAttachmentsME.ORCISH_TAN_FUR_SURCOAT_WITH_BONE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withCape(BackAttachmentsME.CLOAK, DEFAULT).withCape(BackAttachmentsME.ORCISH_BLACK_FUR_SURCOAT_WITH_BONE)) - - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CAPE, DEFAULT).withCape(BackAttachmentsME.ORCISH_TAN_FUR_SURCOAT_WITH_BONE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CAPE, DEFAULT).withCape(BackAttachmentsME.ORCISH_TAN_FUR_SURCOAT_WITH_BONE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withCape(BackAttachmentsME.CLOAK, DEFAULT).withCape(BackAttachmentsME.ORCISH_BLACK_FUR_SURCOAT_WITH_BONE)) - - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CAPE, allColors).withCape(BackAttachmentsME.ORCISH_TAN_FUR_SURCOAT_WITH_BONE)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CAPE, allColors).withCape(BackAttachmentsME.ORCISH_TAN_FUR_SURCOAT_WITH_BONE)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withCape(BackAttachmentsME.CAPE, allColors).withCape(BackAttachmentsME.ORCISH_BLACK_FUR_SURCOAT_WITH_BONE)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.MAIL_SKIRT)) - .add(NpcGearItemData.create(EquipmentItemsME.DWARVEN_MAIL_COAT)) - - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CAPE, DEFAULT)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CAPE, DEFAULT)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withCape(BackAttachmentsME.CLOAK, DEFAULT)) - - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_REINFORCED_LEATHER_SKIRT).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CAPE, DEFAULT)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_REINFORCED_LEATHER_SKIRT).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CAPE, DEFAULT)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_REINFORCED_LEATHER_SKIRT).withCape(BackAttachmentsME.CLOAK, DEFAULT)) - - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_LEGGINGS).withColor(DARK_BROWN).withWeight(3).withCape(BackAttachmentsME.CAPE, DEFAULT)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_LEGGINGS).withColor(LIGHT_BROWN).withWeight(2).withCape(BackAttachmentsME.CAPE, DEFAULT)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_LEGGINGS).withCape(BackAttachmentsME.CLOAK, DEFAULT)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.DWARVEN_REINFORCED_BOOTS)) - .add(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_PLATE_BOOTS)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATED_BOOTS)) - ) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.STEEL_SWORD)) - .add(NpcGearItemData.create(WeaponItemsME.STEEL_SPEAR)) - .add(NpcGearItemData.create(ToolItemsME.STEEL_AXE)) - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_SWORD)) - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_SWORD)) - .add(NpcGearItemData.create(WeaponItemsME.DALISH_SWORD)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR).withWeight(4)) - .add(NpcGearItemData.create(WeaponItemsME.ROUND_SHIELD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.HEATER_SHIELD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_WOODEN_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_ROUND_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_BRACED_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_WOODEN_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - - WILD_GOBLIN_GATHERER = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("wild_goblin_gatherer")), RacesME.ORC, FACTION, NpcTextureDatasME.WILD_GOBLIN_GOBLIN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_SKULLCAP).withColor(DARK_BROWN_GOBLIN).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COIF).withWeight(2)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColor(DARK_BROWN_GOBLIN)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_SHOULDERS, DARK_BROWN_GOBLIN)) - - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.CAPE, DARK_BROWN_GOBLIN)) - - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_CAPE).withColor(DARK_BROWN_GOBLIN)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT).withColor(DARK_BROWN_GOBLIN)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColor(DARK_BROWN_GOBLIN)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEG_BRACER).withColor(DARK_BROWN_GOBLIN)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.ORCISH_SANDALS).withColor(DARK_BROWN_GOBLIN))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(ToolItemsME.CRUDE_AXE).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.CRUDE_DAGGER).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.ORC_KNIFE).withWeight(2)) - .add(NpcGearItemData.create(ToolItemsME.CRUDE_PICKAXE)) - .add(NpcGearItemData.create(ToolItemsME.CRUDE_HOE)) - .add(NpcGearItemData.create(ToolItemsME.CRUDE_SHOVEL)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - WILD_GOBLIN_WARRIOR= new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("wild_goblin_warrior")), RacesME.ORC, FACTION, NpcTextureDatasME.WILD_GOBLIN_GOBLIN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_HELMET).withWeight(6)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_BRACED_HELMET).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COIF).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_MAIL_COIF).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_KETTLE_HAT)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_KETTLE_HAT_WITH_COIF)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_HELMET)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColor(DARK_BROWN_GOBLIN)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_SHOULDERS, DARK_BROWN_GOBLIN)) - - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColor(DARK_BROWN_GOBLIN)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_SHOULDERS, DARK_BROWN_GOBLIN)) - - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColor(DARK_BROWN_GOBLIN)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COAT).withColor(DARK_BROWN_GOBLIN)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_REINFORCED_LEATHER_SKIRT).withColor(DARK_BROWN_GOBLIN)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColor(DARK_BROWN_GOBLIN)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.ORCISH_BRACED_SANDALS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.CRUDE_SPEAR).withWeight(4)) - .add(NpcGearItemData.create(ToolItemsME.CRUDE_AXE).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.CRUDE_DAGGER).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.ORC_KNIFE).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.CRUDE_FALCHION)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_WOODEN_SHIELD).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.ORC_KNIFE)) - .add(NpcGearItemData.create(Items.AIR).withWeight(3)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - WILD_GOBLIN_SCOUT = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("wild_goblin_scout")), RacesME.ORC, FACTION, NpcTextureDatasME.WILD_GOBLIN_GOBLIN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_HELMET).withWeight(6)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_BRACED_HELMET).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COIF).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_MAIL_COIF).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_KETTLE_HAT)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_KETTLE_HAT_WITH_COIF)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_HELMET)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColor(DARK_BROWN_GOBLIN)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_SHOULDERS, DARK_BROWN_GOBLIN)) - - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColor(DARK_BROWN_GOBLIN)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColor(DARK_BROWN_GOBLIN).withCape(BackAttachmentsME.ORCISH_SHOULDERS, DARK_BROWN_GOBLIN)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COAT).withColor(DARK_BROWN_GOBLIN)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_REINFORCED_LEATHER_SKIRT).withColor(DARK_BROWN_GOBLIN)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColor(DARK_BROWN_GOBLIN)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.ORCISH_BROWN_FUR_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.ORCISH_BOW).withWeight(4)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_BOW)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/DalishNpcDataPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/DalishNpcDataPool.java deleted file mode 100644 index de1d815a05..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/DalishNpcDataPool.java +++ /dev/null @@ -1,338 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.npcs.pools; - -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.item.Items; -import net.minecraft.registry.RegistryKey; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.item.EquipmentItemsME; -import net.sevenstars.middleearth.item.ToolItemsME; -import net.sevenstars.middleearth.item.WeaponItemsME; -import net.sevenstars.middleearth.item.utils.armor.backAttachments.BackAttachmentsME; -import net.sevenstars.middleearth.resources.*; -import net.sevenstars.middleearth.resources.datas.factions.Faction; -import net.sevenstars.middleearth.resources.datas.npcs.NpcData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearItemData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearSlotData; -import net.sevenstars.middleearth.resources.datas.races.data.NpcTextureDataPreset; -import net.sevenstars.middleearth.resources.datas.races.data.npctextures.NpcTextureType; - -import java.util.List; -import java.util.stream.Stream; - -public class DalishNpcDataPool { - private final static RegistryKey FACTION = FactionsME.DALE; - private final static String FACTION_BASE = FACTION.getValue().getPath() + ".%s"; - - public final static NpcData DALE_CITIZEN; - public final static NpcData DALE_WORKER; - - public final static NpcData DALE_MILITIA; - public final static NpcData DALE_SOLDIER; - public final static NpcData DALE_SOLDIER_ARCHER; - public final static NpcData DALE_KNIGHT; - public final static NpcData DALE_KNIGHT_ARCHER; - public final static NpcData DALE_VETERAN; - public final static NpcData DALE_SERGEANT; - - public static List fetchAll() { - return List.of( - DALE_CITIZEN, - DALE_WORKER, - DALE_MILITIA, - DALE_SOLDIER, - DALE_SOLDIER_ARCHER, - DALE_KNIGHT, - DALE_KNIGHT_ARCHER, - DALE_VETERAN, - DALE_SERGEANT); - } - - - static { - NpcTextureDataPreset BASE_MALE_DALE_TEXTURE_PRESET = NpcTextureDataPool.HUMAN_MALE.copy() - .clearMaterials(NpcTextureType.SKIN) - .withMaterials(NpcTextureType.SKIN, List.of( - CharacterMaterialsME.Skin.PALE, - CharacterMaterialsME.Skin.BEIGE - )) - .clearMaterials(NpcTextureType.HAIR) - .withMaterials(NpcTextureType.HAIR, List.of( - CharacterMaterialsME.Hair.COLD_BLACK_COPPER, - CharacterMaterialsME.Hair.BLACK_COPPER, - CharacterMaterialsME.Hair.DARK_BROWN_COPPER, - CharacterMaterialsME.Hair.DARK_BROWN_BEADS, - CharacterMaterialsME.Hair.GREASY_BEADS, - CharacterMaterialsME.Hair.GREASY_COPPER, - CharacterMaterialsME.Hair.BROWN_COPPER, - CharacterMaterialsME.Hair.BROWN_BEADS, - CharacterMaterialsME.Hair.GRAY_BEADS, - CharacterMaterialsME.Hair.GRAY_COPPER, - CharacterMaterialsME.Hair.WHITE_COPPER, - CharacterMaterialsME.Hair.WHITE_BEADS - )) - .clearPatterns(NpcTextureType.HAIR) - .withPatterns(NpcTextureType.HAIR, List.of( - CharacterPatternsME.Hairs.Hair.BOWL, - CharacterPatternsME.Hairs.Hair.SHORT, - CharacterPatternsME.Hairs.Hair.SHARP, - CharacterPatternsME.Hairs.Hair.BALD_SIDES, - CharacterPatternsME.Hairs.Hair.UNCUT, - CharacterPatternsME.Hairs.Hair.PONYTAIL_SHORT_ORNAMENTED - )) - .clearPatterns(NpcTextureType.BEARD) - .withPatterns(NpcTextureType.BEARD, Stream.of( - null, - CharacterPatternsME.Hairs.Beard.SHORT, - CharacterPatternsME.Hairs.Beard.SINGLE, - CharacterPatternsME.Hairs.Beard.SEMI_LONG - ).toList()) - .clearPatterns(NpcTextureType.CLOTHING) - .withPatterns(NpcTextureType.CLOTHING, List.of( - CharacterPatternsME.Clothing.PANTS - )); - - NpcTextureDataPreset BASE_FEMALE_DALE_TEXTURE_PRESET = BASE_MALE_DALE_TEXTURE_PRESET.copy() - .clearPatterns(NpcTextureType.HAIR) - .clearPatterns(NpcTextureType.BEARD) - .withPatterns(NpcTextureType.HAIR, List.of( - CharacterPatternsME.Hairs.Hair.LONG, - CharacterPatternsME.Hairs.Hair.FLAT_LONG, - CharacterPatternsME.Hairs.Hair.SEMI_LONG - )); - - DALE_CITIZEN = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("citizen")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.STRAW_HAT)) - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_SKULLCAP)) - .add(NpcGearItemData.create(EquipmentItemsME.BYCOCKET)) - .add(NpcGearItemData.create().withWeight(5)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.DALISH_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.STONE_AXE)) - .add(NpcGearItemData.create(ToolItemsME.SMITHING_HAMMER)) - .add(NpcGearItemData.create(ToolItemsME.PIPE)) - .add(NpcGearItemData.create().withWeight(3)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - DALE_WORKER = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("worker")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.STRAW_HAT)) - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_SKULLCAP)) - .add(NpcGearItemData.create(EquipmentItemsME.BYCOCKET)) - .add(NpcGearItemData.create().withWeight(3)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.ARMING_SKIRT))) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.DALISH_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.STONE_AXE)) - .add(NpcGearItemData.create(ToolItemsME.SMITHING_HAMMER)) - .add(NpcGearItemData.create(ToolItemsME.PIPE)) - .add(NpcGearItemData.create().withWeight(3)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - DALE_MILITIA = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("militia")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_SKULLCAP)) - .add(NpcGearItemData.create().withWeight(2)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_ARMING_COAT_BROWN_FUR)) - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_ARMING_COAT_BLACK_FUR)) - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_ARMING_COAT_TAN_FUR)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.ARMING_SKIRT))) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.DALISH_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.IRON_SWORD)) - .add(NpcGearItemData.create(WeaponItemsME.IRON_SPEAR)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.ROUND_SHIELD)) - .add(NpcGearItemData.create(Items.SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - DALE_SOLDIER = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("soldier")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.KETTLE_HAT)) - .add(NpcGearItemData.create(EquipmentItemsME.KETTLE_HAT_WITH_CLOSED_COIF)) - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_HELMET_BROWN_FUR)) - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_HELMET_BLACK_FUR)) - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_HELMET_TAN_FUR)) - .add(NpcGearItemData.create().withWeight(4)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_MAIL_HAUBERK)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_MAIL_COAT)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_SKIRT)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.DALISH_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.DALISH_SWORD)) - .add(NpcGearItemData.create(WeaponItemsME.DALISH_AXE)) - .add(NpcGearItemData.create(WeaponItemsME.IRON_SPEAR)) - .add(NpcGearItemData.create(WeaponItemsME.DALISH_SPEAR)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.DALISH_BLUE_OVAL_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.DALISH_BLUE_BRACED_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - DALE_SOLDIER_ARCHER = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("soldier_archer")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_HELMET_BROWN_FUR)) - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_HELMET_BLACK_FUR)) - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_HELMET_TAN_FUR)) - .add(NpcGearItemData.create().withWeight(4)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_ARMING_COAT_BROWN_FUR).withCape(BackAttachmentsME.SURCOAT)) - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_ARMING_COAT_BLACK_FUR).withCape(BackAttachmentsME.SURCOAT)) - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_ARMING_COAT_TAN_FUR).withCape(BackAttachmentsME.SURCOAT)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_MAIL_COAT)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_SKIRT)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.DALISH_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.DALISH_LONGBOW)) - .add(NpcGearItemData.create(Items.BOW)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - DALE_KNIGHT = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("knight")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.KETTLE_HAT_WITH_CLOSED_COIF)) - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_BURGONET)) - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_HELMET_BROWN_FUR)) - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_HELMET_BLACK_FUR)) - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_HELMET_TAN_FUR)) - .add(NpcGearItemData.create().withWeight(4)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_MAIL_HAUBERK)) - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_SCALE_HAUBERK)) - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_SCALE_HAUBERK)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_MAIL_COAT)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_SKIRT)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.DALISH_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.DALISH_NOBLE_SWORD)) - .add(NpcGearItemData.create(WeaponItemsME.DALISH_NOBLE_AXE)) - .add(NpcGearItemData.create(WeaponItemsME.DALISH_LONGSWORD)) - .add(NpcGearItemData.create(WeaponItemsME.DALISH_NOBLE_LONGSWORD)) - .add(NpcGearItemData.create(WeaponItemsME.DALISH_SPEAR)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR)) - .add(NpcGearItemData.create(WeaponItemsME.DALISH_BARDING_OVAL_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.DALISH_BARDING_BRACED_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - DALE_KNIGHT_ARCHER = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("knight_archer")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_HELMET_BROWN_FUR)) - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_HELMET_BLACK_FUR)) - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_HELMET_TAN_FUR)) - .add(NpcGearItemData.create().withWeight(2)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_MAIL_HAUBERK)) - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_SCALE_HAUBERK)) - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_SCALE_HAUBERK)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_MAIL_COAT)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_SKIRT)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.DALISH_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.DALISH_NOBLE_LONGBOW)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - DALE_VETERAN = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("veteran")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.BARDING_SOLDIER_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_BURGONET)) - .add(NpcGearItemData.create().withWeight(1)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.BARDING_SOLDIER_CHESTPLATE)) - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_SCALE_HAUBERK)) - .add(NpcGearItemData.create(EquipmentItemsME.BARDING_SOLDIER_CHESTPLATE).withCape(BackAttachmentsME.BARDING_SURCOAT)) - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_SCALE_HAUBERK).withCape(BackAttachmentsME.BARDING_SURCOAT)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.DALISH_MAIL_COAT)) - .add(NpcGearItemData.create(EquipmentItemsME.BARDING_MAIL_SKIRT)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.BARDING_PLATED_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.DALISH_NOBLE_SWORD)) - .add(NpcGearItemData.create(WeaponItemsME.DALISH_NOBLE_AXE)) - .add(NpcGearItemData.create(WeaponItemsME.DALISH_LONGSWORD)) - .add(NpcGearItemData.create(WeaponItemsME.DALISH_NOBLE_LONGSWORD)) - .add(NpcGearItemData.create(WeaponItemsME.DALISH_NOBLE_SPEAR)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR)) - .add(NpcGearItemData.create(WeaponItemsME.DALISH_BARDING_BRACED_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.DALISH_BARDING_OVAL_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.DALISH_BARDING_HEAVY_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - DALE_SERGEANT = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("sergeant")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.BARDING_SOLDIER_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.BARDING_SERGEANT_HELMET).withWeight(3)) - .add(NpcGearItemData.create().withWeight(2)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.BARDING_SERGEANT_CHESTPLATE).withWeight(3).withCape(BackAttachmentsME.BARDING_SERGEANT_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.BARDING_SERGEANT_CHESTPLATE)) - .add(NpcGearItemData.create(EquipmentItemsME.BARDING_SOLDIER_CHESTPLATE).withCape(BackAttachmentsME.BARDING_SERGEANT_CAPE)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.BARDING_MAIL_SKIRT)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.BARDING_PLATED_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.DALISH_NOBLE_SWORD)) - .add(NpcGearItemData.create(WeaponItemsME.DALISH_NOBLE_AXE)) - .add(NpcGearItemData.create(WeaponItemsME.DALISH_LONGSWORD)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR)) - .add(NpcGearItemData.create(WeaponItemsME.DALISH_ROYAL_HEAVY_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.DALISH_ROYAL_ROUND_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.DALISH_BARDING_HEAVY_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/EreborNpcDataPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/EreborNpcDataPool.java deleted file mode 100644 index 167ebd2c06..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/EreborNpcDataPool.java +++ /dev/null @@ -1,345 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.npcs.pools; - -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.item.Items; -import net.minecraft.registry.RegistryKey; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.block.registration.ModDecorativeBlocks; -import net.sevenstars.middleearth.item.EquipmentItemsME; -import net.sevenstars.middleearth.item.ToolItemsME; -import net.sevenstars.middleearth.item.WeaponItemsME; -import net.sevenstars.middleearth.item.utils.armor.backAttachments.BackAttachmentsME; -import net.sevenstars.middleearth.resources.FactionsME; -import net.sevenstars.middleearth.resources.NpcME; -import net.sevenstars.middleearth.resources.NpcTextureDatasME; -import net.sevenstars.middleearth.resources.RacesME; -import net.sevenstars.middleearth.resources.datas.factions.Faction; -import net.sevenstars.middleearth.resources.datas.npcs.NpcData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearItemData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearSlotData; - -import java.util.List; - -public class EreborNpcDataPool { - private final static RegistryKey FACTION = FactionsME.LONGBEARDS_EREBOR; - private final static String FACTION_BASE = FACTION.getValue().getPath() + ".%s"; - - // region GEAR COLORS ========================================>> - private final static int LIGHT_BLUE = 0x4b6274; - private final static int LIGHT_RED = 0x7f4442; - private final static int DARK_RED = 0x56302d; - private final static int DARK_BROWN = 0x3b291e; - // endregion - // NPC ========================================>> - public final static NpcData EREBOR_CIVILIAN; - public final static NpcData EREBOR_MINER; - public final static NpcData EREBOR_MILITIA; - public final static NpcData EREBOR_SOLDIER; - public final static NpcData EREBOR_ARCHER; - - public final static NpcData EREBOR_ELITE; - public final static NpcData EREBOR_VETERAN; - public final static NpcData EREBOR_GATEWARDEN; - public final static NpcData EREBOR_LEADER; - - public static List fetchAll() { - return List.of( - EREBOR_CIVILIAN, - EREBOR_MINER, - EREBOR_MILITIA, - EREBOR_SOLDIER, - EREBOR_ARCHER, - EREBOR_ELITE, - EREBOR_VETERAN, - EREBOR_GATEWARDEN, - EREBOR_LEADER); - } - - static { - EREBOR_CIVILIAN = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("civilian")), RacesME.DWARF, FACTION, NpcTextureDatasME.LONGBEARDS_EREBOR_DWARF, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.WOVEN_HAT).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.BYCOCKET).withColor(DARK_RED).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.DWARVEN_MINER_HELMET)) - .add(NpcGearItemData.create()) - ) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.WOODEN_HOE)) - .add(NpcGearItemData.create(Items.WHEAT)) - .add(NpcGearItemData.create(Items.WOODEN_SHOVEL)) - .add(NpcGearItemData.create(ModDecorativeBlocks.WATERING_CAN.asItem())) - .add(NpcGearItemData.create(Items.AIR)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - EREBOR_MINER = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("miner")), RacesME.DWARF, FACTION, NpcTextureDatasME.LONGBEARDS_EREBOR_DWARF, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.WOVEN_HAT).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.BYCOCKET).withColor(DARK_RED).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.DWARVEN_MINER_HELMET)) - .add(NpcGearItemData.create()) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.DWARVEN_GAMBESON).withColor(LIGHT_RED)) - .add(NpcGearItemData.create(EquipmentItemsME.DWARVEN_MINER_GAMBESON).withColor(LIGHT_RED)) - .add(NpcGearItemData.create(EquipmentItemsME.DWARVEN_GAMBESON).withColor(LIGHT_RED).withCape(BackAttachmentsME.SURCOAT, DARK_BROWN)) - .add(NpcGearItemData.create(EquipmentItemsME.DWARVEN_MINER_GAMBESON).withColor(LIGHT_RED).withCape(BackAttachmentsME.SURCOAT, DARK_BROWN)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.LONGBEARD_LEATHER_LEGGINGS).withColor(DARK_RED)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.DWARVEN_BOOTS).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.DWARVEN_REINFORCED_BOOTS)) - ) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(ToolItemsME.KHAZAD_STEEL_PICKAXE)) - .add(NpcGearItemData.create(ToolItemsME.KHAZAD_STEEL_AXE)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - EREBOR_MILITIA = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("militia")), RacesME.DWARF, FACTION, NpcTextureDatasME.LONGBEARDS_EREBOR_DWARF, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.LONGBEARD_SEGMENTED_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_LEATHER_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_BRACED_LEATHER_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_NASAL_LEATHER_HELMET)) - .add(NpcGearItemData.create()) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.LONGBEARD_PARTISAN_OUTFIT).withColor(LIGHT_RED).withCape(BackAttachmentsME.SURCOAT, LIGHT_BLUE)) - - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.LONGBEARD_LEATHER_LEGGINGS).withColor(LIGHT_RED)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.DWARVEN_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_SWORD)) - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_AXE)) - .add(NpcGearItemData.create(WeaponItemsME.KHAZAD_STEEL_SWORD)) - .add(NpcGearItemData.create(WeaponItemsME.KHAZAD_STEEL_SPEAR)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.HEATER_SHIELD)) - .add(NpcGearItemData.create(Items.AIR)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - EREBOR_SOLDIER = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("soldier")), RacesME.DWARF, FACTION, NpcTextureDatasME.LONGBEARDS_EREBOR_DWARF, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_HELMET).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_MAIL_COIF).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.LONGBEARD_SEGMENTED_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_LEATHER_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_BRACED_LEATHER_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_NASAL_LEATHER_HELMET)) - .add(NpcGearItemData.create()) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_PADDED_MAIL_HAUBERK).withCape(BackAttachmentsME.EREBOR_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_PADDED_MAIL_HAUBERK).withCape(BackAttachmentsME.SURCOAT, LIGHT_BLUE)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_LONG_COAT).withColor(LIGHT_RED)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_LONG_COAT).withColor(LIGHT_RED).withCape(BackAttachmentsME.SURCOAT, LIGHT_BLUE)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_BRAWLER_CHESTPLATE).withColor(LIGHT_BLUE)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_BRAWLER_CHESTPLATE).withColor(DARK_RED).withCape(BackAttachmentsME.EREBOR_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_REINFORCED_LEATHER_HAUBERK).withColor(LIGHT_BLUE)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_REINFORCED_COAT).withColor(LIGHT_BLUE).withCape(BackAttachmentsME.SURCOAT, LIGHT_BLUE)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_LEATHER_LEGGINGS).withColor(LIGHT_RED).withWeight(5)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_MAIL_COAT).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_MAIL_LEGGINGS)) - .add(NpcGearItemData.create(EquipmentItemsME.LONGBEARD_LEATHER_LEGGINGS).withColor(LIGHT_RED)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.EREBOR_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_SWORD)) - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_AXE)) - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_SPEAR)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_SHIELD).withWeight(4)) - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_CROSS_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.ROUND_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.HEATER_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - EREBOR_ARCHER = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("archer")), RacesME.DWARF, FACTION, NpcTextureDatasME.LONGBEARDS_EREBOR_DWARF_MIGHTY, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_HELMET).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_MAIL_COIF).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.LONGBEARD_SEGMENTED_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_LEATHER_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_BRACED_LEATHER_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_NASAL_LEATHER_HELMET)) - .add(NpcGearItemData.create()) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_PADDED_MAIL_HAUBERK).withCape(BackAttachmentsME.EREBOR_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_PADDED_MAIL_HAUBERK).withCape(BackAttachmentsME.SURCOAT, LIGHT_BLUE)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_LONG_COAT).withColor(LIGHT_RED)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_LONG_COAT).withColor(LIGHT_RED).withCape(BackAttachmentsME.SURCOAT, LIGHT_BLUE)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_BRAWLER_CHESTPLATE).withColor(LIGHT_BLUE)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_BRAWLER_CHESTPLATE).withColor(DARK_RED).withCape(BackAttachmentsME.EREBOR_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_REINFORCED_LEATHER_HAUBERK).withColor(LIGHT_BLUE)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_REINFORCED_COAT).withColor(LIGHT_BLUE).withCape(BackAttachmentsME.SURCOAT, LIGHT_BLUE)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_LEATHER_LEGGINGS).withColor(LIGHT_RED).withWeight(5)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_MAIL_COAT).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_MAIL_LEGGINGS)) - .add(NpcGearItemData.create(EquipmentItemsME.LONGBEARD_LEATHER_LEGGINGS).withColor(LIGHT_RED)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.EREBOR_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_BOW).withWeight(3)) - .add(NpcGearItemData.create(Items.BOW)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - EREBOR_ELITE = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("elite")), RacesME.DWARF, FACTION, NpcTextureDatasME.LONGBEARDS_EREBOR_DWARF, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_GUARD_HELMET).withWeight(8)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_GILDED_MAIL_COIF).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_CAPTAIN_HELMET)) - .add(NpcGearItemData.create()) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_BRAWLER_CHESTPLATE).withColor(DARK_RED).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_BRAWLER_CHESTPLATE).withColor(DARK_RED).withCape(BackAttachmentsME.EREBOR_CAPE)) - - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_BRAWLER_CHESTPLATE).withColor(LIGHT_BLUE).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_BRAWLER_CHESTPLATE).withColor(LIGHT_BLUE).withCape(BackAttachmentsME.EREBOR_CAPE)) - - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_PLATE_CHESTPLATE).withCape(BackAttachmentsME.EREBOR_CAPE).withWeight(3)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_LEATHER_LEGGINGS).withColor(DARK_RED)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_MAIL_LEGGINGS)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.DWARVEN_BOOTS).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_PLATE_BOOTS)) - ) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_NOBLE_SWORD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_NOBLE_AXE).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_NOBLE_LONGSWORD)) - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_NOBLE_SPEAR)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_REINFORCED_TOWER_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_REINFORCED_SHIELD).withWeight(5)) - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_SHIELD).withWeight(4)) - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_CROSS_SHIELD)) - .add(NpcGearItemData.create(Items.AIR).withWeight(5)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - EREBOR_VETERAN = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("veteran")), RacesME.DWARF, FACTION, NpcTextureDatasME.LONGBEARDS_EREBOR_DWARF, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_PLATE_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_GUARD_HELMET)) - .add(NpcGearItemData.create()) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_PLATE_CHESTPLATE)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_PLATE_CHESTPLATE).withCape(BackAttachmentsME.SURCOAT, LIGHT_BLUE)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_PLATE_LEGGINGS)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_SCALE_COAT)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.DWARVEN_BOOTS).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_PLATE_BOOTS)) - ) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_NOBLE_SWORD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_NOBLE_AXE).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_NOBLE_LONGSWORD)) - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_NOBLE_SPEAR)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_REINFORCED_TOWER_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_REINFORCED_SHIELD).withWeight(5)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - EREBOR_GATEWARDEN = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("gatewarden")), RacesME.DWARF, FACTION, NpcTextureDatasME.LONGBEARDS_EREBOR_DWARF, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_GATEWARDEN_HELMET)) - .add(NpcGearItemData.create()) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_GATEWARDEN_CHESTPLATE).withCape(BackAttachmentsME.EREBOR_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_GATEWARDEN_CHESTPLATE).withCape(BackAttachmentsME.SURCOAT, LIGHT_BLUE)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_GATEWARDEN_LEGGINGS)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_GATEWARDEN_BOOTS)) - ) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_NOBLE_SWORD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_NOBLE_AXE).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_NOBLE_SPEAR).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_NOBLE_LONGSWORD)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_ORNAMENTED_TOWER_SHIELD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_REINFORCED_TOWER_SHIELD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_BUCKLER_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - - EREBOR_LEADER = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("leader")), RacesME.DWARF, FACTION, NpcTextureDatasME.LONGBEARDS_EREBOR_DWARF, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_CAPTAIN_HELMET)) - .add(NpcGearItemData.create()) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_PLATE_CHESTPLATE).withCape(BackAttachmentsME.EREBOR_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_PLATE_CHESTPLATE).withCape(BackAttachmentsME.SURCOAT, LIGHT_BLUE)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_SCALE_COAT).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_MAIL_COAT).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_PLATE_LEGGINGS)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.EREBOR_PLATE_BOOTS).withWeight(3)) - ) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_NOBLE_SWORD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_NOBLE_AXE).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_NOBLE_LONGSWORD)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_ORNAMENTED_TOWER_SHIELD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.EREBOR_BUCKLER_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/GondorianNpcDataPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/GondorianNpcDataPool.java deleted file mode 100644 index c632d0b93b..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/GondorianNpcDataPool.java +++ /dev/null @@ -1,295 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.npcs.pools; - -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.item.Items; -import net.minecraft.registry.RegistryKey; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.item.EquipmentItemsME; -import net.sevenstars.middleearth.item.ToolItemsME; -import net.sevenstars.middleearth.item.WeaponItemsME; -import net.sevenstars.middleearth.item.utils.armor.backAttachments.BackAttachmentsME; -import net.sevenstars.middleearth.resources.FactionsME; -import net.sevenstars.middleearth.resources.NpcME; -import net.sevenstars.middleearth.resources.NpcTextureDatasME; -import net.sevenstars.middleearth.resources.RacesME; -import net.sevenstars.middleearth.resources.datas.factions.Faction; -import net.sevenstars.middleearth.resources.datas.npcs.NpcData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearItemData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearSlotData; - -import java.util.List; - -public class GondorianNpcDataPool { - private final static RegistryKey FACTION = FactionsME.GONDOR; - private final static String FACTION_BASE = FACTION.getValue().getPath() + ".%s"; - - private final static int LIGHT_BLUE = 0x2b3965; - private final static int DARK_BLUE = 0x182038; - private final static int LIGHT_ORANGE = 0xc67640; - private final static int DARK_ORANGE = 0x82492c; - private final static int LIGHT_BEIGE = 0xe8cb9b; - private final static int DARK_BEIGE = 0xa89371; - private final static int LIGHT_GRAY = 0x68697d; - private final static int DARK_GRAY = 0x555666; - private final static int LIGHT_GREEN = 0x435353; - private final static int DARK_GREEN = 0x262f2f; - - public final static NpcData GONDOR_MILITIA; - public final static NpcData GONDOR_SOLDIER; - public final static NpcData GONDOR_KNIGHT; - public final static NpcData GONDOR_VETERAN; - public final static NpcData GONDOR_FOUNTAIN_GUARD; - public final static NpcData GONDOR_CITADEL_GUARD; - public final static NpcData GONDOR_KING_GUARD; - public final static NpcData GONDOR_LEADER; - - public static List fetchAll() { - return List.of( - GONDOR_MILITIA, - GONDOR_SOLDIER, - GONDOR_KNIGHT, - GONDOR_VETERAN, - GONDOR_FOUNTAIN_GUARD, - GONDOR_CITADEL_GUARD, - GONDOR_KING_GUARD, - GONDOR_LEADER - ); - } - - static { - - GONDOR_MILITIA = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("militia")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_SKULLCAP)) - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON_CAP)) - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_SKULLCAP).withColor(DARK_BEIGE)) - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON_CAP).withColor(DARK_BEIGE)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withColor(LIGHT_BLUE).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withColor(DARK_BLUE)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withColor(LIGHT_ORANGE)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withColor(DARK_ORANGE)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withColor(LIGHT_BEIGE)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withColor(DARK_BEIGE)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_SKIRT)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_SKIRT).withColor(DARK_BLUE)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_SKIRT).withColor(DARK_ORANGE)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_SKIRT).withColor(DARK_BEIGE)) - .add(NpcGearItemData.create().withWeight(2)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_BOOTS)) - .add(NpcGearItemData.create().withWeight(2)) - ) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.BRONZE_SPEAR).withWeight(4)) - .add(NpcGearItemData.create(WeaponItemsME.BRONZE_SWORD).withWeight(3)) - .add(NpcGearItemData.create(ToolItemsME.BRONZE_AXE).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.IRON_SPEAR).withWeight(2)) - .add(NpcGearItemData.create(Items.IRON_SWORD)) - .add(NpcGearItemData.create(Items.IRON_AXE)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.KITE_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.HEATER_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.ROUND_SHIELD)) - .add(NpcGearItemData.create().withWeight(5)) - ), - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.KETTLE_HAT).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON_COWL)) - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON_COWL).withColor(LIGHT_GRAY)) - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON_COWL).withColor(DARK_GRAY)) - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON_COWL).withColor(LIGHT_GREEN)) - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON_COWL).withColor(DARK_GREEN)) - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON_CAP)) - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON_CAP).withColor(LIGHT_GRAY)) - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON_CAP).withColor(DARK_GRAY)) - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON_CAP).withColor(LIGHT_GREEN)) - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON_CAP).withColor(DARK_GREEN)) - .add(NpcGearItemData.create(EquipmentItemsME.OPEN_FACE_HELMET)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON).withColor(LIGHT_GRAY)) - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON).withColor(DARK_GRAY)) - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON).withColor(LIGHT_GREEN)) - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON).withColor(DARK_GREEN)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_MAIL_COAT)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_SKIRT).withColor(DARK_GRAY).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_SKIRT).withColor(DARK_GREEN).withWeight(4)) - .add(NpcGearItemData.create().withWeight(7)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_BOOTS)) - .add(NpcGearItemData.create().withWeight(2)) - ) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.BRONZE_SPEAR).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.BRONZE_SWORD)) - .add(NpcGearItemData.create(ToolItemsME.BRONZE_AXE)) - .add(NpcGearItemData.create(WeaponItemsME.IRON_SPEAR).withWeight(2)) - .add(NpcGearItemData.create(Items.IRON_SWORD)) - .add(NpcGearItemData.create(Items.IRON_AXE)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.KITE_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.HEATER_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.ROUND_SHIELD)) - .add(NpcGearItemData.create().withWeight(5)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - GONDOR_SOLDIER = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("soldier")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_CABASSET_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_SOLDIER_HELMET).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.KETTLE_HAT)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_TABBARD)) - .add(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_LEATHER_CUIRASS)) - .add(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_LEATHER_CHESTPLATE)) - .add(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_SOLDIER_CHESTPLATE)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_MAIL_COAT)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_SKIRT).withColor(DARK_GRAY).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_SKIRT).withColor(DARK_GREEN).withWeight(2)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_BOOTS))) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_SWORD)) - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_AXE)) - ) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create()) - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - GONDOR_KNIGHT = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("knight")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_PLATE_HELMET))) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_SOLDIER_CHESTPLATE)) - .add(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_PLATE_CHESTPLATE)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_MAIL_COAT).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_PLATE_LEGGINGS)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_SWORD)) - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_AXE)) - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_LONGSWORD)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_SHIELD)) - ), - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_PLATE_HELMET))) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_PLATE_CHESTPLATE))) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_PLATE_LEGGINGS))) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_SPEAR)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_TOWER_SHIELD)) - .add(NpcGearItemData.create().withWeight(3)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - GONDOR_VETERAN = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("veteran")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_PLATE_HELMET).withWeight(10)) - .add(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_CAPTAIN_HELMET)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_PLATE_CHESTPLATE))) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_PLATE_LEGGINGS))) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_PLATE_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_NOBLE_SWORD)) - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_NOBLE_AXE)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_HERO_SHIELD)) - .add(NpcGearItemData.create().withWeight(2)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - GONDOR_LEADER = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("leader")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_CAPTAIN_HELMET))) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_PLATE_CHESTPLATE).withCape(BackAttachmentsME.GONDORIAN_HERO_CAPE).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_KINGS_GUARD_CHESTKPLATE).withCape(BackAttachmentsME.GONDORIAN_HERO_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_CITADEL_GUARD_CHESTPLATE).withCape(BackAttachmentsME.GONDORIAN_HERO_CAPE)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_CITADEL_GUARD_CHESTPLATE))) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_KINGS_GUARD_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_NOBLE_SWORD)) - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_NOBLE_AXE)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_HERO_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_ORNAMENTED_KNIGHT_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - GONDOR_CITADEL_GUARD = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("citadel_guard")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_CITADEL_GUARD_HELMET))) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_CITADEL_GUARD_CHESTPLATE))) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_CITADEL_GUARD_LEGGINGS))) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_CITADEL_GUARD_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_NOBLE_SWORD)) - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_NOBLE_AXE)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_KNIGHT_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - GONDOR_FOUNTAIN_GUARD = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("fountain_guard")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_FOUNTAIN_GUARD_HELMET))) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_FOUNTAIN_GUARD_CHESTPLATE))) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_FOUNTAIN_GUARD_LEGGINGS))) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_FOUNTAIN_GUARD_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create(NpcGearItemData.create(WeaponItemsME.GONDORIAN_FOUNTAIN_GUARD_SPEAR))) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - GONDOR_KING_GUARD = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("king_guard")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_KINGS_GUARD_HELMET))) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_KINGS_GUARD_CHESTKPLATE))) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_KINGS_GUARD_LEGGINGS))) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GONDORIAN_KINGS_GUARD_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_NOBLE_SPEAR).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_NOBLE_LONGSWORD)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_KINGS_GUARD_TOWER_SHIELD).withWeight(8)) - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_TOWER_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - } -} \ No newline at end of file diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/IsengardNpcDataPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/IsengardNpcDataPool.java deleted file mode 100644 index 028f780800..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/IsengardNpcDataPool.java +++ /dev/null @@ -1,308 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.npcs.pools; - -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.item.Items; -import net.minecraft.registry.RegistryKey; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.item.DecorativeItemsME; -import net.sevenstars.middleearth.item.EquipmentItemsME; -import net.sevenstars.middleearth.item.ToolItemsME; -import net.sevenstars.middleearth.item.WeaponItemsME; -import net.sevenstars.middleearth.item.utils.armor.backAttachments.BackAttachmentsME; -import net.sevenstars.middleearth.resources.FactionsME; -import net.sevenstars.middleearth.resources.NpcME; -import net.sevenstars.middleearth.resources.NpcTextureDatasME; -import net.sevenstars.middleearth.resources.RacesME; -import net.sevenstars.middleearth.resources.datas.factions.Faction; -import net.sevenstars.middleearth.resources.datas.npcs.NpcData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearItemData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearSlotData; - -import java.util.List; - -public class IsengardNpcDataPool { - private final static RegistryKey FACTION = FactionsME.ISENGARD; - private final static String FACTION_BASE = FACTION.getValue().getPath() + ".%s"; - - private static List allColors; - private static final int DARK = 0x302b28; - private static final int DARK_BROWN = 0x655147; - public final static NpcData ISENGARD_ORTHANC_GUARD; - public final static NpcData ISENGARD_ORC_SNAGA; - public final static NpcData ISENGARD_ORC_WARRIOR; - public final static NpcData ISENGARD_URUK_HAI_SOLDIER; - public final static NpcData ISENGARD_URUK_HAI_SCOUT; - public final static NpcData ISENGARD_URUK_HAI_VETERAN; - public final static NpcData ISENGARD_URUK_HAI_BERSERKER; - public final static NpcData ISENGARD_URUK_HAI_LEADER; - - public static List fetchAll() { - return List.of( - ISENGARD_ORTHANC_GUARD, - ISENGARD_ORC_SNAGA, - ISENGARD_ORC_WARRIOR, - ISENGARD_URUK_HAI_SOLDIER, - ISENGARD_URUK_HAI_SCOUT, - ISENGARD_URUK_HAI_VETERAN, - ISENGARD_URUK_HAI_BERSERKER, - ISENGARD_URUK_HAI_LEADER - ); - } - - static { - allColors = List.of(DARK, DARK_BROWN); - - ISENGARD_ORTHANC_GUARD = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("orthanc_guard")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORTHANC_GUARD_HELMET).withWeight(4)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORTHANC_GUARD_CHESTPLATE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORTHANC_GUARD_CHESTPLATE).withCape(BackAttachmentsME.ORTHANC_GUARD_CAPE)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORTHANC_GUARD_LEGGINGS)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.ORTHANC_GUARD_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.URUK_HAI_SPEAR)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - ISENGARD_ORC_SNAGA = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("orc_snaga")), RacesME.ORC, FACTION, NpcTextureDatasME.ISENGARD_ORC, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_LEATHER_SCOUT_CAP).withColors(allColors).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_SKULLCAP).withColors(allColors).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.HOOD).withColors(allColors).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COIF)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_CAPE)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEG_BRACER).withColors(allColors)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.WOODEN_SPEAR).withWeight(6)) - .add(NpcGearItemData.create(WeaponItemsME.CRUDE_SPEAR).withWeight(2)) - .add(NpcGearItemData.create(ToolItemsME.CRUDE_AXE).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.CRUDE_DAGGER).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.ORC_KNIFE).withWeight(2)) - .add(NpcGearItemData.create(ToolItemsME.CRUDE_PICKAXE)) - .add(NpcGearItemData.create(ToolItemsME.CRUDE_HOE)) - .add(NpcGearItemData.create(ToolItemsME.CRUDE_SHOVEL)) - .add(NpcGearItemData.create(WeaponItemsME.CRUDE_FALCHION)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_WOODEN_SHIELD)) - .add(NpcGearItemData.create(Items.AIR).withWeight(3)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - - ISENGARD_ORC_WARRIOR = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("orc_warrior")), RacesME.ORC, FACTION, NpcTextureDatasME.ISENGARD_ORC, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_LEATHER_SCOUT_CAP).withColors(allColors).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_LIGHT_HELMET).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_KETTLE_HAT).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_BRACED_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_SALLET)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_LEATHER_CHESTPLATE)) - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_LEATHER_CHESTPLATE).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_LEATHER_CHESTPLATE).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COAT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_REINFORCED_LEATHER_SKIRT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_REINFORCED_STRIP_LEATHER_SKIRT).withColors(allColors)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.ISENGARD_ORC_CLEAVER).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.ISENGARD_ORC_AXE).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.ISENGARD_ORC_SPEAR).withWeight(4)) - .add(NpcGearItemData.create(WeaponItemsME.CRUDE_SPEAR).withWeight(6)) - .add(NpcGearItemData.create(ToolItemsME.CRUDE_AXE).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.CRUDE_DAGGER).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.ORC_KNIFE).withWeight(2)) - .add(NpcGearItemData.create(ToolItemsME.CRUDE_PICKAXE)) - .add(NpcGearItemData.create(ToolItemsME.CRUDE_HOE)) - .add(NpcGearItemData.create(ToolItemsME.CRUDE_SHOVEL)) - .add(NpcGearItemData.create(WeaponItemsME.CRUDE_FALCHION)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_WOODEN_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_WOODEN_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.ROUND_SHIELD)) - .add(NpcGearItemData.create(Items.AIR).withWeight(3)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - ISENGARD_URUK_HAI_SOLDIER = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("uruk_hai_soldier")), RacesME.URUK, FACTION, NpcTextureDatasME.ISENGARD_URUK_HAI, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_PLATE_HELMET).withWeight(5)) - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_LEATHER_SCOUT_CAP).withColors(allColors).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_LIGHT_HELMET).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_REINFORCED_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_SAPPER_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_SOLDIER_HELMET)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_LEATHER_CHESTPLATE)) - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_LEATHER_CHESTPLATE).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_LEATHER_CHESTPLATE).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COAT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_REINFORCED_LEATHER_SKIRT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_REINFORCED_STRIP_LEATHER_SKIRT).withColors(allColors)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.ISENGARD_ORC_WARBLADE)) - .add(NpcGearItemData.create(WeaponItemsME.ISENGARD_ORC_CLEAVER)) - .add(NpcGearItemData.create(WeaponItemsME.ISENGARD_ORC_AXE)) - .add(NpcGearItemData.create(WeaponItemsME.ISENGARD_ORC_SPEAR)) - - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.URUK_HAI_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.URUK_HAI_S_RUNE_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.URUK_HAI_WHITE_HAND_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.URUK_HAI_WHITE_PALMPRINT_SHIELD)) - .add(NpcGearItemData.create(Items.AIR).withWeight(3)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - ISENGARD_URUK_HAI_SCOUT = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("uruk_hai_scout")), RacesME.URUK, FACTION, NpcTextureDatasME.ISENGARD_URUK_HAI, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_LEATHER_SCOUT_CAP).withColors(allColors).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_REINFORCED_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_SOLDIER_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_LIGHT_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_PAINTED_REINFORCED_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_PAINTED_LIGHT_HELMET)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_LEATHER_HAUBERK)) - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_LEATHER_CHESTPLATE)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_MAIL_SKIRT)) - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_MAIL_COAT)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.URUK_HAI_BOW).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.URUK_HAI_FALCHION)) - .add(NpcGearItemData.create(WeaponItemsME.URUK_HAI_SPEAR).withWeight(2)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - ISENGARD_URUK_HAI_VETERAN = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("uruk_hai_veteran")), RacesME.URUK, FACTION, NpcTextureDatasME.ISENGARD_URUK_HAI, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_PAINTED_PLATE_HELMET).withWeight(5)) - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_PAINTED_SAPPER_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_PAINTED_SOLDIER_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_COMMANDER_HELMET)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_PLATE_CHESTPLATE)) - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_CUIRASS)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.MAIL_SKIRT))) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_PLATE_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.URUK_HAI_AXE).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.URUK_HAI_FALCHION).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.URUK_HAI_WARBLADE)) - .add(NpcGearItemData.create(WeaponItemsME.URUK_HAI_SPEAR)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.URUK_HAI_HEATER_SHIELD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.URUK_HAI_S_RUNE_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.URUK_HAI_WHITE_HAND_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.URUK_HAI_WHITE_PALMPRINT_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - - ISENGARD_URUK_HAI_BERSERKER = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("uruk_hai_berserker")), RacesME.URUK, FACTION, NpcTextureDatasME.ISENGARD_URUK_HAI, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_PAINTED_BERSERKER_HELMET)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColors(allColors)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.URUK_HAI_FALCHION).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.URUK_HAI_SPEAR).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.URUK_HAI_WARBLADE)) - .add(NpcGearItemData.create(WeaponItemsME.URUK_HAI_AXE)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(DecorativeItemsME.TORCH_OF_ORTHANC).withWeight(4)) - .add(NpcGearItemData.create(Items.AIR)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - ISENGARD_URUK_HAI_LEADER = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("uruk_hai_leader")), RacesME.URUK, FACTION, NpcTextureDatasME.ISENGARD_URUK_HAI, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_PAINTED_COMMANDER_HELMET)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_PLATE_CHESTPLATE).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_PLATE_CHESTPLATE).withCape(BackAttachmentsME.CAPE, allColors)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.MAIL_SKIRT))) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.URUK_HAI_PLATE_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.URUK_HAI_AXE).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.URUK_HAI_FALCHION).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.URUK_HAI_WARBLADE)) - .add(NpcGearItemData.create(WeaponItemsME.URUK_HAI_SPEAR)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.URUK_HAI_HEATER_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/LorienNpcDataPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/LorienNpcDataPool.java deleted file mode 100644 index 3ee4a91a38..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/LorienNpcDataPool.java +++ /dev/null @@ -1,241 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.npcs.pools; - -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.item.Items; -import net.minecraft.registry.RegistryKey; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.item.EquipmentItemsME; -import net.sevenstars.middleearth.item.WeaponItemsME; -import net.sevenstars.middleearth.item.utils.armor.backAttachments.BackAttachmentsME; -import net.sevenstars.middleearth.item.utils.armor.helmetAttachments.HelmetAttachmentsME; -import net.sevenstars.middleearth.resources.FactionsME; -import net.sevenstars.middleearth.resources.NpcME; -import net.sevenstars.middleearth.resources.NpcTextureDatasME; -import net.sevenstars.middleearth.resources.RacesME; -import net.sevenstars.middleearth.resources.datas.factions.Faction; -import net.sevenstars.middleearth.resources.datas.npcs.NpcData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearItemData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearSlotData; - -import java.util.List; - -public class LorienNpcDataPool { - private final static RegistryKey FACTION = FactionsME.LOTHLORIEN; - private final static String FACTION_BASE = FACTION.getValue().getPath() + ".%s"; - - private final static int LIGHT_BLUE = 0x3a4250; - private final static int DARK_BLUE = 0x252b3a; - public final static NpcData LOTHLORIEN_MILITIA; - public final static NpcData LOTHLORIEN_RANGER; - public final static NpcData LOTHLORIEN_RANGER_ARCHER; - public final static NpcData LOTHLORIEN_SOLDIER; - public final static NpcData LOTHLORIEN_KNIGHT; - public final static NpcData LOTHLORIEN_KNIGHT_ARCHER; - public final static NpcData LOTHLORIEN_VETERAN; - public final static NpcData LOTHLORIEN_LORD; - - public static List fetchAll() { - return List.of( - LOTHLORIEN_MILITIA, - LOTHLORIEN_RANGER, - LOTHLORIEN_RANGER_ARCHER, - LOTHLORIEN_SOLDIER, - LOTHLORIEN_KNIGHT, - LOTHLORIEN_KNIGHT_ARCHER, - LOTHLORIEN_VETERAN, - LOTHLORIEN_LORD); - } - static { - LOTHLORIEN_MILITIA = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("militia")), RacesME.ELF, FACTION, NpcTextureDatasME.LORIEN_ELF, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_DIADEM)) - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_DIADEM).withHood(HelmetAttachmentsME.LORIEN_MARCHWARDEN_HOOD)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ELVEN_ARMING_COAT).withCape(BackAttachmentsME.LORIEN_MARCHWARDEN_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_MARCHWARDEN_CAPE)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.ELVEN_ARMING_SKIRT))) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.SHOES))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create(NpcGearItemData.create(WeaponItemsME.LORIEN_SWORD))) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create(NpcGearItemData.create(WeaponItemsME.LORIEN_SHIELD))) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - LOTHLORIEN_RANGER = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("ranger")), RacesME.ELF, FACTION, NpcTextureDatasME.LORIEN_ELF, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_MARCHWARDEN_HOOD)) - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_LEATHER_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_DIADEM)) - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_DIADEM).withHood(HelmetAttachmentsME.LORIEN_MARCHWARDEN_HOOD)) - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_SHORT_MAIL_COIF_DIADEM)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_ARMING_COAT).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_ARMING_COAT).withCape(BackAttachmentsME.LORIEN_MARCHWARDEN_CAPE)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.LORIEN_ARMING_SKIRT))) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.ELVEN_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_SWORD)) - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_SPEAR)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR)) - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - LOTHLORIEN_RANGER_ARCHER = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("ranger_archer")), RacesME.ELF, FACTION, NpcTextureDatasME.LORIEN_ELF, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_MARCHWARDEN_HOOD)) - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_LEATHER_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_DIADEM)) - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_DIADEM).withHood(HelmetAttachmentsME.LORIEN_MARCHWARDEN_HOOD, false)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_ARMING_COAT).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_ARMING_COAT).withCape(BackAttachmentsME.LORIEN_MARCHWARDEN_CAPE)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.LORIEN_ARMING_SKIRT))) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.ELVEN_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_BOW)) - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_LONGBOW)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - LOTHLORIEN_SOLDIER = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("soldier")), RacesME.ELF, FACTION, NpcTextureDatasME.LORIEN_ELF, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_LEATHER_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_DIADEM)) - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_DIADEM).withHood(HelmetAttachmentsME.LORIEN_MARCHWARDEN_HOOD)) - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_SHORT_MAIL_COIF_DIADEM)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_MAIL_HAUBERK).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_MARCHWARDEN_MAIL_HAUBERK).withCape(BackAttachmentsME.GALADHRIM_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_MARCHWARDEN_MAIL_HAUBERK).withCape(BackAttachmentsME.LORIEN_MARCHWARDEN_CAPE)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.LORIEN_ARMING_SKIRT))) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.ELVEN_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_GLAIVE)) - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_SPEAR)) - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_SWORD)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_LAURELS_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_MALLORN_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - LOTHLORIEN_KNIGHT = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("knight")), RacesME.ELF, FACTION, NpcTextureDatasME.LORIEN_ELF, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_SOLDIER_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.GALADHRIM_HELMET)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_SOLDIER_SCALE_HAUBERK).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_SOLDIER_SCALE_HAUBERK).withCape(BackAttachmentsME.GALADHRIM_CAPE).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_MARCHWARDEN_MAIL_HAUBERK).withCape(BackAttachmentsME.GALADHRIM_CAPE)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.LORIEN_SCALE_COAT))) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GALADHRIM_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_GLAIVE)) - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_SPEAR)) - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_SWORD)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_LAURELS_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_MALLORN_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - LOTHLORIEN_KNIGHT_ARCHER = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("knight_archer")), RacesME.ELF, FACTION, NpcTextureDatasME.LORIEN_ELF, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_SOLDIER_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.GALADHRIM_HELMET)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_SOLDIER_SCALE_HAUBERK).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_SOLDIER_SCALE_HAUBERK).withCape(BackAttachmentsME.GALADHRIM_CAPE).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_MARCHWARDEN_MAIL_HAUBERK).withCape(BackAttachmentsME.GALADHRIM_CAPE)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.LORIEN_SCALE_COAT))) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GALADHRIM_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_LONGBOW)) - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_NOBLE_LONGBOW)) - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_BOW)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - LOTHLORIEN_VETERAN = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("veteran")), RacesME.ELF, FACTION, NpcTextureDatasME.LORIEN_ELF, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GALADHRIM_HELMET).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_SOLDIER_HELMET)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GALADHRIM_CHESTPLATE).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.GALADHRIM_CHESTPLATE).withCape(BackAttachmentsME.GALADHRIM_CAPE).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_SOLDIER_SCALE_HAUBERK).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.LORIEN_SOLDIER_SCALE_HAUBERK).withCape(BackAttachmentsME.GALADHRIM_CAPE)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GALADHRIM_LEGGINGS))) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GALADHRIM_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_NOBLE_AXE).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_NOBLE_SWORD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_NOBLE_SPEAR).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_NOBLE_GLAIVE)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.GALADHRIM_SHIELD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_LAURELS_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_MALLORN_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - LOTHLORIEN_LORD = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("lord")), RacesME.ELF, FACTION, NpcTextureDatasME.LORIEN_ELF, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GALADHRIM_LORD_HELMET)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GALADHRIM_LORD_CHESTPLATE).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.GALADHRIM_LORD_CHESTPLATE).withCape(BackAttachmentsME.GALADHRIM_LORD_SURCOAT)) - .add(NpcGearItemData.create(EquipmentItemsME.GALADHRIM_LORD_CHESTPLATE).withCape(BackAttachmentsME.GALADHRIM_CAPE)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GALADHRIM_LORD_LEGGINGS))) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GALADHRIM_LORD_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_NOBLE_AXE)) - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_NOBLE_SWORD)) - .add(NpcGearItemData.create(WeaponItemsME.LORIEN_NOBLE_SPEAR)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.GALADHRIM_LORD_SHIELD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.GALADHRIM_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/MistyMountainsGoblinsNpcDataPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/MistyMountainsGoblinsNpcDataPool.java deleted file mode 100644 index 72d246850a..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/MistyMountainsGoblinsNpcDataPool.java +++ /dev/null @@ -1,308 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.npcs.pools; - -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.item.Items; -import net.minecraft.registry.RegistryKey; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.item.EquipmentItemsME; -import net.sevenstars.middleearth.item.ToolItemsME; -import net.sevenstars.middleearth.item.WeaponItemsME; -import net.sevenstars.middleearth.item.utils.armor.backAttachments.BackAttachmentsME; -import net.sevenstars.middleearth.resources.FactionsME; -import net.sevenstars.middleearth.resources.NpcME; -import net.sevenstars.middleearth.resources.NpcTextureDatasME; -import net.sevenstars.middleearth.resources.RacesME; -import net.sevenstars.middleearth.resources.datas.factions.Faction; -import net.sevenstars.middleearth.resources.datas.npcs.NpcData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearItemData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearSlotData; - -import java.util.List; - -public class MistyMountainsGoblinsNpcDataPool { - private final static RegistryKey FACTION = FactionsME.MISTY_MOUNTAINS_GOBLINS; - private final static String FACTION_BASE = FACTION.getValue().getPath() + ".%s"; - - private static List allColors; - private static final int DARK_PURPLE = 0x3c3135; - private static final int DARK_BROWN = 0x4a3c34; - - public final static NpcData MISTY_GOBLIN_SNAGA; - public final static NpcData MISTY_GOBLIN_WARRIOR; - public final static NpcData MISTY_GOBLIN_ARCHER; - public final static NpcData MISTY_HOBGOBLIN_SOLDIER; - public final static NpcData MISTY_HOBGOBLIN_VETERAN; - public final static NpcData MISTY_HOBGOBLIN_LEADER; - - public static List fetchAll() { - return List.of( - MISTY_GOBLIN_SNAGA, - MISTY_GOBLIN_WARRIOR, - MISTY_GOBLIN_ARCHER, - MISTY_HOBGOBLIN_SOLDIER, - MISTY_HOBGOBLIN_VETERAN, - MISTY_HOBGOBLIN_LEADER - ); - } - static { - allColors = List.of(DARK_PURPLE, DARK_BROWN); - MISTY_GOBLIN_SNAGA = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("goblin_snaga")), RacesME.ORC, FACTION, NpcTextureDatasME.HOBGOBLIN_TRIBES_GOBLIN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_SKULLCAP).withColors(allColors).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.HOOD).withColors(allColors).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COIF)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_CAPE).withColors(allColors)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEG_BRACER).withColors(allColors)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.ORCISH_SANDALS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.CRUDE_SPEAR).withWeight(4)) - .add(NpcGearItemData.create(ToolItemsME.CRUDE_AXE).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.CRUDE_DAGGER).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.ORC_KNIFE).withWeight(2)) - .add(NpcGearItemData.create(ToolItemsME.CRUDE_PICKAXE)) - .add(NpcGearItemData.create(ToolItemsME.CRUDE_HOE)) - .add(NpcGearItemData.create(ToolItemsME.CRUDE_SHOVEL)) - .add(NpcGearItemData.create(WeaponItemsME.CRUDE_FALCHION)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_WOODEN_SHIELD)) - .add(NpcGearItemData.create(Items.AIR).withWeight(3)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - MISTY_GOBLIN_WARRIOR = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("goblin_warrior")), RacesME.ORC, FACTION, NpcTextureDatasME.HOBGOBLIN_TRIBES_GOBLIN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_SKULLCAP_HELMET).withColors(allColors).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_SEEKER_HELMET).withColors(allColors).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COIF)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_MAIL_COIF)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_MAIL_HAUBERK)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_MAIL_HAUBERK).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_MAIL_HAUBERK).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_LEGGINGS).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEG_BRACER).withColors(allColors)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_SANDALS)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LACED_BOOTS).withColors(allColors)) - ) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_SPEAR).withWeight(4)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_FALCHION).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_SHANK).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.ORC_KNIFE).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.CRUDE_FALCHION)) - .add(NpcGearItemData.create(ToolItemsME.CRUDE_AXE)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_WOODEN_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_PAINTED_WOODEN_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_PEAKS_PAINTED_WOODEN_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_GREAT_EYE_PAINTED_WOODEN_SHIELD)) - .add(NpcGearItemData.create(Items.AIR).withWeight(2)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - MISTY_GOBLIN_ARCHER= new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("goblin_archer")), RacesME.ORC, FACTION, NpcTextureDatasME.HOBGOBLIN_TRIBES_GOBLIN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR).withWeight(8)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_SKULLCAP_HELMET).withColors(allColors).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COIF)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_MAIL_COIF)) - .add(NpcGearItemData.create(EquipmentItemsME.HOOD).withColors(allColors)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_MAIL_HAUBERK)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_MAIL_HAUBERK).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_MAIL_HAUBERK).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_BONE_PAULDRON).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_LEGGINGS).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEG_BRACER).withColors(allColors)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_SANDALS)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LACED_BOOTS).withColors(allColors)) - ) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_BOW).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.ORCISH_BOW)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - MISTY_HOBGOBLIN_SOLDIER = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("hobgoblin_soldier")), RacesME.URUK, FACTION, NpcTextureDatasME.HOBGOBLIN_TRIBES_HOBGOBLIN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_SOLDIER_HELMET).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_SCREECHER_HELMET).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_SKULLCAP_HELMET).withColors(allColors).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_SEEKER_HELMET).withColors(allColors).withWeight(3)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_SCALE_COAT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_SCALE_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_SCALE_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_VEST).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_VEST).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_VEST).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) - - - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_LEGGINGS).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEG_BRACER).withColors(allColors)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_SANDALS)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LACED_BOOTS).withColors(allColors)) - ) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_SPEAR).withWeight(4)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_FALCHION).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_AXE).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_ELITE_BATTLEAXE)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_ELITE_CLEAVER)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_WOODEN_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_PAINTED_WOODEN_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_PEAKS_PAINTED_WOODEN_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_GREAT_EYE_PAINTED_WOODEN_SHIELD)) - .add(NpcGearItemData.create(Items.AIR).withWeight(2)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - MISTY_HOBGOBLIN_VETERAN = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("hobgoblin_veteran")), RacesME.URUK, FACTION, NpcTextureDatasME.HOBGOBLIN_TRIBES_GOBLIN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_LONG_HORN_HELMET).withColors(allColors).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_SOLDIER_HELMET).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_SCREECHER_HELMET).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_SMALL_HORN_HELMET).withWeight(2)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_CHESTPLATE)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_CHESTPLATE).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_CHESTPLATE).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_SCALE_COAT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_SCALE_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_SCALE_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_VEST).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_VEST).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_REINFORCED_LEATHER_VEST).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) - - - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_SCALE_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_MAIL_COAT)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LEATHER_LEGGINGS).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_MAIL_COAT)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATED_BOOTS)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_LACED_BOOTS).withColors(allColors)) - ) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_SPEAR).withWeight(4)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_FALCHION).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_AXE).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_ELITE_BATTLEAXE)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_ELITE_CLEAVER)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_HEAVY_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_REINFORCED_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - MISTY_HOBGOBLIN_LEADER = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("hobgoblin_leader")), RacesME.URUK, FACTION, NpcTextureDatasME.HOBGOBLIN_TRIBES_GOBLIN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_LARGE_CREST_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_CAPTAIN_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_CRESTED_HELMET)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_CHESTPLATE).withWeight(2).withCape(BackAttachmentsME.CAPE, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATE_CHESTPLATE).withWeight(2).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_MAIL_COAT))) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.GUNDABAD_HOBGOBLIN_PLATED_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_ELITE_BATTLEAXE).withWeight(4)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_ELITE_SCIMITAR).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_ELITE_SPEAR).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_ELITE_CLEAVER).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_FALCHION)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_HEAVY_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.GUNDABAD_REINFORCED_SHIELD)) - .add(NpcGearItemData.create(Items.AIR).withWeight(2)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/MordorNpcDataPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/MordorNpcDataPool.java deleted file mode 100644 index ba8f642da8..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/MordorNpcDataPool.java +++ /dev/null @@ -1,448 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.npcs.pools; - -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.item.Items; -import net.minecraft.registry.RegistryKey; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.item.EquipmentItemsME; -import net.sevenstars.middleearth.item.ToolItemsME; -import net.sevenstars.middleearth.item.WeaponItemsME; -import net.sevenstars.middleearth.item.utils.armor.backAttachments.BackAttachmentsME; -import net.sevenstars.middleearth.item.utils.armor.helmetAttachments.HelmetAttachmentsME; -import net.sevenstars.middleearth.resources.FactionsME; -import net.sevenstars.middleearth.resources.NpcME; -import net.sevenstars.middleearth.resources.NpcTextureDatasME; -import net.sevenstars.middleearth.resources.RacesME; -import net.sevenstars.middleearth.resources.datas.factions.Faction; -import net.sevenstars.middleearth.resources.datas.npcs.NpcData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearItemData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearSlotData; - -import java.util.List; - -public class MordorNpcDataPool { - private final static RegistryKey FACTION = FactionsME.MORDOR; - private final static String FACTION_BASE = FACTION.getValue().getPath() + ".%s"; - - private static final int DARK_RED = 0x4f251d; - private static final int DARK_BROWN = 0x4a3c34; - private static final int DARK = 0x1d1f1e; - - private static List allColors; - - public final static NpcData MORDOR_BLACK_NUMENOREAN; - public final static NpcData MORDOR_ORC_SNAGA; - public final static NpcData MORDOR_ORC_MILITIA; - public final static NpcData MORDOR_ORC_SCOUT; - public final static NpcData MORDOR_ORC_SOLDIER; - public final static NpcData MORDOR_BLACK_URUK_SOLDIER; - public final static NpcData MORDOR_BLACK_URUK_VETERAN; - public final static NpcData MORDOR_BLACK_URUK_LEADER; - public final static NpcData MORDOR_BLACK_URUK_VETERAN_ARCHER; - - public static List fetchAll() { - return List.of( - MORDOR_BLACK_NUMENOREAN, - MORDOR_ORC_SNAGA, - MORDOR_ORC_MILITIA, - MORDOR_ORC_SCOUT, - MORDOR_ORC_SOLDIER, - MORDOR_BLACK_URUK_SOLDIER, - MORDOR_BLACK_URUK_VETERAN, - MORDOR_BLACK_URUK_VETERAN_ARCHER, - MORDOR_BLACK_URUK_LEADER - ); - } - static { - allColors = List.of(DARK_RED, DARK_BROWN, DARK); - - MORDOR_BLACK_NUMENOREAN = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("black_numenorean")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_BLACK_NUMENOREAN_PLATE_HELMET).withWeight(4)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_BLACK_NUMENOREAN_PLATE_CHESTPLATE)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_BLACK_NUMENOREAN_PLATE_CHESTPLATE).withCape(BackAttachmentsME.MORDOR_BLACK_NUMENOREAN_CAPE)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_BLACK_NUMENOREAN_PLATE_LEGGINGS)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.MORDOR_BLACK_NUMENOREAN_PLATE_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.BLACK_NUMENOREAN_SPEAR)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.BLACK_NUMENOREAN_TOWER_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - MORDOR_ORC_SNAGA = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("orc_snaga")), RacesME.ORC, FACTION, NpcTextureDatasME.MORDOR_ORC, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_SKULLCAP).withColors(allColors).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.HOOD).withColors(allColors).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_COIF)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_STRAP).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_CAPE).withColors(allColors)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEG_BRACER).withColors(allColors)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.ORCISH_SANDALS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.CRUDE_SPEAR).withWeight(4)) - .add(NpcGearItemData.create(ToolItemsME.CRUDE_AXE).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.CRUDE_DAGGER).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.ORC_KNIFE).withWeight(2)) - .add(NpcGearItemData.create(ToolItemsME.CRUDE_PICKAXE)) - .add(NpcGearItemData.create(ToolItemsME.CRUDE_HOE)) - .add(NpcGearItemData.create(ToolItemsME.CRUDE_SHOVEL)) - .add(NpcGearItemData.create(WeaponItemsME.CRUDE_FALCHION)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_WOODEN_SHIELD).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_PAINTED_WOODEN_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - MORDOR_ORC_MILITIA = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("orc_militia")), RacesME.ORC, FACTION, NpcTextureDatasME.MORDOR_ORC, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_HELMET).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_NASAL_HELMET).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_HELMET).withWeight(2).withHood(HelmetAttachmentsME.HOOD, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_NASAL_HELMET).withWeight(2).withHood(HelmetAttachmentsME.HOOD, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_KETTLE_HAT)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_BRACED_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_HELMET).withHood(HelmetAttachmentsME.HOOD, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_KETTLE_HAT_WITH_COIF)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_SHIRT).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_SHIRT).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_SHIRT).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_SHIRT).withCape(BackAttachmentsME.SURCOAT, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_HAUBERK).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_HAUBERK).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_HAUBERK).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_HAUBERK).withCape(BackAttachmentsME.SURCOAT, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.SURCOAT).withColors(allColors)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEG_BRACER).withColors(allColors)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_SANDALS)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_BLACK_FUR_BOOTS)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_BROWN_FUR_BOOTS)) - ) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.CRUDE_SPEAR).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.ORC_SPEAR).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.ORC_AXE).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.CRUDE_FALCHION).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.ORC_SWORD).withWeight(2)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_ROUND_SHIELD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_PAINTED_ROUND_SHIELD).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_BLACK_ROUND_SHIELD).withWeight(2)) - .add(NpcGearItemData.create(Items.AIR)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - MORDOR_ORC_SCOUT = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("orc_scout")), RacesME.ORC, FACTION, NpcTextureDatasME.MORDOR_ORC, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_HELMET).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_NASAL_HELMET).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_HELMET).withWeight(2).withHood(HelmetAttachmentsME.HOOD, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_NASAL_HELMET).withWeight(2).withHood(HelmetAttachmentsME.HOOD, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_HELMET).withHood(HelmetAttachmentsME.HOOD, allColors)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SCALE_VEST).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_SHIRT).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_SHIRT).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_SHIRT).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_SHIRT).withCape(BackAttachmentsME.SURCOAT, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_HAUBERK).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_HAUBERK).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_HAUBERK).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_ORCISH_MAIL_HAUBERK).withCape(BackAttachmentsME.SURCOAT, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_SHOULDERS, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.SURCOAT).withColors(allColors)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEG_BRACER).withColors(allColors)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_SANDALS)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_BLACK_FUR_BOOTS)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_BROWN_FUR_BOOTS)) - ) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_BOW).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.ORCISH_BOW).withWeight(3)) - .add(NpcGearItemData.create(Items.BOW).withWeight(15)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - MORDOR_ORC_SOLDIER = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("orc_soldier")), RacesME.ORC, FACTION, NpcTextureDatasME.MORDOR_ORC, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_HELMET).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_HELMET).withWeight(2).withHood(HelmetAttachmentsME.HOOD, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_NASAL_HELMET).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_NASAL_HELMET).withWeight(2).withHood(HelmetAttachmentsME.HOOD, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_KETTLE_HAT).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_KETTLE_HAT_WITH_COIF).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_MANDIBLE_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_SALLET).withHood(HelmetAttachmentsME.HOOD, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_CREST_HELMET)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_CUIRASS).withColors(allColors).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_CUIRASS).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_CUIRASS).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_CUIRASS).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_CUIRASS).withColors(allColors).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_CUIRASS).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_CUIRASS).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_CUIRASS).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_PAINTED_CUIRASS).withColors(allColors).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_PAINTED_CUIRASS).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_PAINTED_CUIRASS).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_PAINTED_CUIRASS).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_CHESTPLATE).withColors(allColors).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_CHESTPLATE).withColors(allColors).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_GORGET_HAUBERK).withColors(allColors).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_GORGET_HAUBERK).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_GORGET_HAUBERK).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_GORGET_HAUBERK).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_GORGET_HAUBERK).withColors(allColors).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_GORGET_HAUBERK).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_GORGET_HAUBERK).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.RUSTED_MORDOR_GORGET_HAUBERK).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_DEGRADED_GONDORIAN_CHESTPLATE).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_DEGRADED_GONDORIAN_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_DEGRADED_GONDORIAN_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_DEGRADED_GONDORIAN_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEG_BRACER).withColors(allColors)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_SANDALS)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_BLACK_FUR_BOOTS)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_BROWN_FUR_BOOTS)) - ) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_SPEAR).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_AXE).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_FALCHION).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.ORC_SWORD).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.ORC_AXE).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.ORC_SPEAR).withWeight(2)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_BRACED_SHIELD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_BLACK_BRACED_SHIELD).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_PAINTED_BRACED_SHIELD).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_LARGE_SHIELD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_BLACK_LARGE_SHIELD).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_PAINTED_LARGE_SHIELD).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_CONVERTED_SHIELD)) - .add(NpcGearItemData.create(Items.AIR)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - MORDOR_BLACK_URUK_SOLDIER = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("black_uruk_soldier")), RacesME.URUK, FACTION, NpcTextureDatasME.MORDOR_BLACK_URUK, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_HELMET).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_HELMET).withWeight(2).withHood(HelmetAttachmentsME.HOOD, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_NASAL_HELMET).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_NASAL_HELMET).withWeight(2).withHood(HelmetAttachmentsME.HOOD, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_KETTLE_HAT).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_KETTLE_HAT_WITH_COIF).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_MANDIBLE_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_SALLET).withHood(HelmetAttachmentsME.HOOD, allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_CREST_HELMET)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_CUIRASS).withColors(allColors).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_CUIRASS).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_CUIRASS).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_CUIRASS).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_PAINTED_CUIRASS).withColors(allColors).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_PAINTED_CUIRASS).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_PAINTED_CUIRASS).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_PAINTED_CUIRASS).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_CHESTPLATE).withColors(allColors).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_CHESTPLATE).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_GORGET_HAUBERK).withColors(allColors).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_GORGET_HAUBERK).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_GORGET_HAUBERK).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_GORGET_HAUBERK).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) - - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_REINFORCED_COAT).withColors(allColors).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_REINFORCED_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_REINFORCED_COAT).withColors(allColors).withCape(BackAttachmentsME.ORCISH_LONG_CAPE)) - .add(NpcGearItemData.create(EquipmentItemsME.MORDOR_REINFORCED_COAT).withColors(allColors).withCape(BackAttachmentsME.CAPE, allColors)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_STRIP_LEATHER_SKIRT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEATHER_SKIRT).withColors(allColors)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_LEG_BRACER).withColors(allColors)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_SANDALS)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_BLACK_FUR_BOOTS)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_BROWN_FUR_BOOTS)) - ) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_SPEAR).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_AXE).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_FALCHION).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.ORC_SWORD).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.ORC_AXE).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.ORC_SPEAR).withWeight(2)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_BRACED_SHIELD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_BLACK_BRACED_SHIELD).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_PAINTED_BRACED_SHIELD).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_LARGE_SHIELD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_BLACK_LARGE_SHIELD).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_PAINTED_LARGE_SHIELD).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.GONDORIAN_CONVERTED_SHIELD)) - .add(NpcGearItemData.create(Items.AIR)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - MORDOR_BLACK_URUK_VETERAN = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("black_uruk_veteran")), RacesME.URUK, FACTION, NpcTextureDatasME.MORDOR_BLACK_URUK, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.BLACK_URUK_PLATE_HELMET))) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.BLACK_URUK_PLATE_CHESTPLATE))) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.BLACK_URUK_PLATE_LEGGINGS).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_REINFORCED_LEATHER_SKIRT)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.BLACK_URUK_PLATE_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_ELITE_CLEAVER)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_ELITE_WARBLADE)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_PAINTED_HEAVY_SHIELD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_HEAVY_SHIELD).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_BLACK_ROUND_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - MORDOR_BLACK_URUK_VETERAN_ARCHER = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("black_uruk_veteran_archer")), RacesME.URUK, FACTION, NpcTextureDatasME.MORDOR_BLACK_URUK, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.BLACK_URUK_PLATE_HELMET))) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.BLACK_URUK_PLATE_CHESTPLATE))) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.BLACK_URUK_PLATE_LEGGINGS).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.ORCISH_REINFORCED_LEATHER_SKIRT)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.BLACK_URUK_PLATE_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_ELITE_LONGBOW)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - MORDOR_BLACK_URUK_LEADER = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("black_uruk_leader")), RacesME.URUK, FACTION, NpcTextureDatasME.MORDOR_BLACK_URUK, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.BLACK_URUK_COMMANDER_HELMET))) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.BLACK_URUK_COMMANDER_CHESTPLATE)) - .add(NpcGearItemData.create(EquipmentItemsME.BLACK_URUK_COMMANDER_CHESTPLATE).withCape(BackAttachmentsME.CAPE, allColors)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.BLACK_URUK_PLATE_LEGGINGS))) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.BLACK_URUK_PLATE_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_ELITE_CLEAVER)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_ELITE_WARBLADE)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_PAINTED_HEAVY_SHIELD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_HEAVY_SHIELD).withWeight(2)) - .add(NpcGearItemData.create(WeaponItemsME.MORDOR_BLACK_ROUND_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/NpcTextureDataPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/NpcTextureDataPool.java deleted file mode 100644 index ac33e5eebc..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/NpcTextureDataPool.java +++ /dev/null @@ -1,285 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.npcs.pools; - -import net.minecraft.registry.RegistryKey; -import net.sevenstars.middleearth.resources.CharacterMaterialsME; -import net.sevenstars.middleearth.resources.CharacterPatternsME; -import net.sevenstars.middleearth.resources.datas.races.data.NpcTextureDataPreset; -import net.sevenstars.middleearth.resources.datas.races.data.npctextures.NpcTextureMaterial; -import net.sevenstars.middleearth.resources.datas.races.data.npctextures.NpcTextureType; - -import java.util.List; -import java.util.stream.Stream; - -public class NpcTextureDataPool { -public final static List> DEFAULT_HAIR; - - public final static NpcTextureDataPreset HUMAN_COMMON; - public final static NpcTextureDataPreset HUMAN_MALE; - public final static NpcTextureDataPreset HUMAN_FEMALE; - - public static class Dwarves{ - public final static NpcTextureDataPreset DWARF_MALE; - public final static NpcTextureDataPreset DWARF_FEMALE; - - static { - DWARF_MALE = new NpcTextureDataPreset() - .withMaterials(NpcTextureType.SKIN, List.of( - CharacterMaterialsME.Skin.TAN, - CharacterMaterialsME.Skin.TAN_DESATURATED, - CharacterMaterialsME.Skin.PALE, - CharacterMaterialsME.Skin.BEIGE - )) - .withPatterns(NpcTextureType.BODY, List.of( - CharacterPatternsME.Skins.Body.MUSCULAR, - CharacterPatternsME.Skins.Body.FAT - )) - .withPatterns(NpcTextureType.HEAD, List.of( - CharacterPatternsME.Skins.Head.MALE - )) - .withPatterns(NpcTextureType.NOSE, List.of( - CharacterPatternsME.Skins.Nose.CUBE - )) - .withPatterns(NpcTextureType.EAR, List.of( - CharacterPatternsME.Skins.Ear.SQUARE, - CharacterPatternsME.Skins.Ear.NORMAL - )) - .withMaterials(NpcTextureType.EYE, List.of( - CharacterMaterialsME.Eye.BLUE, - CharacterMaterialsME.Eye.GREEN, - CharacterMaterialsME.Eye.DARK_GREEN, - CharacterMaterialsME.Eye.BLACK, - CharacterMaterialsME.Eye.NAVY, - CharacterMaterialsME.Eye.BROWN - )) - .withPatterns(NpcTextureType.EYE, List.of(CharacterPatternsME.Eyes.Eye.COMMON)) - .withMaterials(NpcTextureType.HAIR, DEFAULT_HAIR) - .withPatterns(NpcTextureType.EYEBROW, List.of( - CharacterPatternsME.Hairs.Eyebrow.UNI, - CharacterPatternsME.Hairs.Eyebrow.BASIC, - CharacterPatternsME.Hairs.Eyebrow.SHORT, - CharacterPatternsME.Hairs.Eyebrow.THICK, - CharacterPatternsME.Hairs.Eyebrow.LONG - )) - .withPatterns(NpcTextureType.HAIR, Stream.of( - CharacterPatternsME.Hairs.Hair.PONYTAIL_SHORT_ORNAMENTED, - CharacterPatternsME.Hairs.Hair.SHARP, - CharacterPatternsME.Hairs.Hair.BALD_SIDES, - CharacterPatternsME.Hairs.Hair.DIRTY_MOP, - CharacterPatternsME.Hairs.Hair.SHORT, - CharacterPatternsME.Hairs.Hair.TOP_BALDING, - CharacterPatternsME.Hairs.Hair.SIDE_BALDING, - null).toList() - ) - .withPatterns(NpcTextureType.BEARD, Stream.of( - CharacterPatternsME.Hairs.Beard.BROAD, - CharacterPatternsME.Hairs.Beard.CHUNKY_BRAIDS, - CharacterPatternsME.Hairs.Beard.CLEAN, - CharacterPatternsME.Hairs.Beard.DUAL_LARGE_ORNAMENTED, - CharacterPatternsME.Hairs.Beard.DUAL_ORNAMENTED, - CharacterPatternsME.Hairs.Beard.LARGE, - CharacterPatternsME.Hairs.Beard.LONG_SINGLE_ORNAMENTED, - CharacterPatternsME.Hairs.Beard.SHORT, - CharacterPatternsME.Hairs.Beard.SINGLE, - CharacterPatternsME.Hairs.Beard.UNCLEAN_ORNAMENTED, - CharacterPatternsME.Hairs.Beard.VERY_BROAD).toList()) - .withMaterials(NpcTextureType.CLOTHING, List.of( - CharacterMaterialsME.Clothing.BLUE_AND_COPPER, - CharacterMaterialsME.Clothing.BROWN - )) - .withPatterns(NpcTextureType.CLOTHING, List.of( - CharacterPatternsME.Clothing.DWARVEN_GARMENT, - CharacterPatternsME.Clothing.DWARVEN_GARMENT_WITH_PANTS, - CharacterPatternsME.Clothing.PANTS - )); - DWARF_FEMALE = new NpcTextureDataPreset() - .withMaterials(NpcTextureType.SKIN, List.of( - CharacterMaterialsME.Skin.TAN, - CharacterMaterialsME.Skin.TAN_DESATURATED, - CharacterMaterialsME.Skin.PALE, - CharacterMaterialsME.Skin.BEIGE - )) - .withPatterns(NpcTextureType.BODY, List.of( - CharacterPatternsME.Skins.Body.FEMALE, - CharacterPatternsME.Skins.Body.SLIM, - CharacterPatternsME.Skins.Body.FAT - )) - .withPatterns(NpcTextureType.HEAD, List.of( - CharacterPatternsME.Skins.Head.FEMALE - )) - .withPatterns(NpcTextureType.EAR, List.of( - CharacterPatternsME.Skins.Ear.SQUARE, - CharacterPatternsME.Skins.Ear.NORMAL - )) - .withMaterials(NpcTextureType.EYE, List.of( - CharacterMaterialsME.Eye.BLUE, - CharacterMaterialsME.Eye.GREEN, - CharacterMaterialsME.Eye.DARK_GREEN, - CharacterMaterialsME.Eye.BLACK, - CharacterMaterialsME.Eye.NAVY, - CharacterMaterialsME.Eye.BROWN - )) - .withPatterns(NpcTextureType.EYE, List.of( - CharacterPatternsME.Eyes.Eye.COMMON - )) - .withMaterials(NpcTextureType.HAIR, DEFAULT_HAIR) - .withPatterns(NpcTextureType.EYEBROW, List.of( - CharacterPatternsME.Hairs.Eyebrow.UNI, - CharacterPatternsME.Hairs.Eyebrow.BASIC, - CharacterPatternsME.Hairs.Eyebrow.SHORT, - CharacterPatternsME.Hairs.Eyebrow.THICK, - CharacterPatternsME.Hairs.Eyebrow.LONG - )) - .withPatterns(NpcTextureType.HAIR, Stream.of( - CharacterPatternsME.Hairs.Hair.PONYTAIL_SHORT_ORNAMENTED, - CharacterPatternsME.Hairs.Hair.LONG, - CharacterPatternsME.Hairs.Hair.FLAT_LONG, - CharacterPatternsME.Hairs.Hair.VERY_LONG - ).toList() - ) - .withPatterns(NpcTextureType.BEARD, Stream.of( - CharacterPatternsME.Hairs.Beard.CLEAN, - CharacterPatternsME.Hairs.Beard.LONG_SINGLE_ORNAMENTED, - CharacterPatternsME.Hairs.Beard.SHORT).toList()) - .withMaterials(NpcTextureType.CLOTHING, List.of( - CharacterMaterialsME.Clothing.BLUE_AND_COPPER, - CharacterMaterialsME.Clothing.WHITE, - CharacterMaterialsME.Clothing.GRAY - )) - .withPatterns(NpcTextureType.CLOTHING, List.of( - CharacterPatternsME.Clothing.DWARVEN_GARMENT, - CharacterPatternsME.Clothing.DWARVEN_GARMENT_WITH_PANTS - )); - } - } - - - static { - // region HAIR - DEFAULT_HAIR = List.of( - CharacterMaterialsME.Hair.COLD_BLACK_COPPER, - CharacterMaterialsME.Hair.COLD_BLACK_GOLD, - CharacterMaterialsME.Hair.COLD_BLACK_SILVER, - CharacterMaterialsME.Hair.COLD_BLACK_ALMANDINE, - - CharacterMaterialsME.Hair.BLACK_COPPER, - CharacterMaterialsME.Hair.BLACK_GOLD, - CharacterMaterialsME.Hair.BLACK_SILVER, - CharacterMaterialsME.Hair.BLACK_ALMANDINE, - - CharacterMaterialsME.Hair.BROWN_COPPER, - CharacterMaterialsME.Hair.BROWN_GOLD, - CharacterMaterialsME.Hair.BROWN_SILVER, - CharacterMaterialsME.Hair.BROWN_ALMANDINE, - - CharacterMaterialsME.Hair.DARK_BROWN_COPPER, - CharacterMaterialsME.Hair.DARK_BROWN_GOLD, - CharacterMaterialsME.Hair.DARK_BROWN_SILVER, - CharacterMaterialsME.Hair.DARK_BROWN_ALMANDINE, - - CharacterMaterialsME.Hair.STRAW_COPPER, - CharacterMaterialsME.Hair.STRAW_GOLD, - CharacterMaterialsME.Hair.STRAW_SILVER, - CharacterMaterialsME.Hair.STRAW_ALMANDINE, - CharacterMaterialsME.Hair.STRAW_BEADS, - - CharacterMaterialsME.Hair.GINGER_COPPER, - CharacterMaterialsME.Hair.GINGER_GOLD, - CharacterMaterialsME.Hair.GINGER_SILVER, - CharacterMaterialsME.Hair.GINGER_ALMANDINE, - CharacterMaterialsME.Hair.GINGER_BEADS, - - CharacterMaterialsME.Hair.WHITE_COPPER, - CharacterMaterialsME.Hair.WHITE_GOLD, - CharacterMaterialsME.Hair.WHITE_ALMANDINE, - CharacterMaterialsME.Hair.WHITE_BEADS, - - CharacterMaterialsME.Hair.GRAY_COPPER, - CharacterMaterialsME.Hair.GRAY_GOLD, - CharacterMaterialsME.Hair.GRAY_ALMANDINE, - CharacterMaterialsME.Hair.GRAY_BEADS - ); - // endregion - - // region HUMAN - HUMAN_COMMON = new NpcTextureDataPreset() - .withMaterials(NpcTextureType.SKIN, List.of( - CharacterMaterialsME.Skin.TAN, - CharacterMaterialsME.Skin.TAN_DESATURATED, - CharacterMaterialsME.Skin.PALE, - CharacterMaterialsME.Skin.BEIGE - )) - .withMaterials(NpcTextureType.EYE, List.of( - CharacterMaterialsME.Eye.BLUE, - CharacterMaterialsME.Eye.GREEN, - CharacterMaterialsME.Eye.DARK_GREEN, - CharacterMaterialsME.Eye.NAVY, - CharacterMaterialsME.Eye.BROWN - )) - .withPatterns(NpcTextureType.EYE, List.of( - CharacterPatternsME.Eyes.Eye.COMMON - )) - .withMaterials(NpcTextureType.HAIR, DEFAULT_HAIR) - .withPatterns(NpcTextureType.EYEBROW, List.of( - CharacterPatternsME.Hairs.Eyebrow.UNI, - CharacterPatternsME.Hairs.Eyebrow.BASIC, - CharacterPatternsME.Hairs.Eyebrow.SHORT - )) - .withMaterials(NpcTextureType.CLOTHING, List.of( - CharacterMaterialsME.Clothing.WHITE, - CharacterMaterialsME.Clothing.BROWN - )) - .withPatterns(NpcTextureType.CLOTHING, List.of( - CharacterPatternsME.Clothing.TOGA, - CharacterPatternsME.Clothing.FULL_TOGA, - CharacterPatternsME.Clothing.SKIRT - )); - HUMAN_MALE = new NpcTextureDataPreset() - .withPatterns(NpcTextureType.BODY, List.of( - CharacterPatternsME.Skins.Body.MUSCULAR - )) - .withPatterns(NpcTextureType.HEAD, List.of( - CharacterPatternsME.Skins.Head.MALE - )) - .withPatterns(NpcTextureType.EYEBROW, List.of( - CharacterPatternsME.Hairs.Eyebrow.UNI, - CharacterPatternsME.Hairs.Eyebrow.BASIC, - CharacterPatternsME.Hairs.Eyebrow.SHORT - )) - .withPatterns(NpcTextureType.HAIR, Stream.of( - CharacterPatternsME.Hairs.Hair.BOWL, - CharacterPatternsME.Hairs.Hair.BALD_SIDES, - CharacterPatternsME.Hairs.Hair.DIRTY_MOP, - CharacterPatternsME.Hairs.Hair.SHORT, - CharacterPatternsME.Hairs.Hair.TOP_BALDING, - CharacterPatternsME.Hairs.Hair.SIDE_BALDING, - null).toList() - ) - .withPatterns(NpcTextureType.BEARD, Stream.of( - CharacterPatternsME.Hairs.Beard.CLEAN, - CharacterPatternsME.Hairs.Beard.SHORT, - CharacterPatternsME.Hairs.Beard.SINGLE, - CharacterPatternsME.Hairs.Beard.UNCLEAN_ORNAMENTED, - null).toList()); - HUMAN_FEMALE = new NpcTextureDataPreset() - .withPatterns(NpcTextureType.BODY, List.of( - CharacterPatternsME.Skins.Body.FEMALE - )) - .withPatterns(NpcTextureType.HEAD, List.of( - CharacterPatternsME.Skins.Head.FEMALE - )) - .withPatterns(NpcTextureType.EYEBROW, List.of( - CharacterPatternsME.Hairs.Eyebrow.UNI, - CharacterPatternsME.Hairs.Eyebrow.BASIC, - CharacterPatternsME.Hairs.Eyebrow.SHORT - )) - .withPatterns(NpcTextureType.HAIR, Stream.of( - CharacterPatternsME.Hairs.Hair.DIRTY_MOP, - CharacterPatternsME.Hairs.Hair.LONG, - CharacterPatternsME.Hairs.Hair.SEMI_LONG, - CharacterPatternsME.Hairs.Hair.VERY_LONG, - null).toList() - ) - .withPatterns(NpcTextureType.CLOTHING, List.of(CharacterPatternsME.Clothing.ROBE)); - // endregion - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/RohirricNpcDataPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/RohirricNpcDataPool.java deleted file mode 100644 index 3466a923a5..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/RohirricNpcDataPool.java +++ /dev/null @@ -1,239 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.npcs.pools; - -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.item.Items; -import net.minecraft.registry.RegistryKey; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.item.EquipmentItemsME; -import net.sevenstars.middleearth.item.ToolItemsME; -import net.sevenstars.middleearth.item.WeaponItemsME; -import net.sevenstars.middleearth.item.utils.armor.backAttachments.BackAttachmentsME; -import net.sevenstars.middleearth.resources.FactionsME; -import net.sevenstars.middleearth.resources.NpcME; -import net.sevenstars.middleearth.resources.NpcTextureDatasME; -import net.sevenstars.middleearth.resources.RacesME; -import net.sevenstars.middleearth.resources.datas.factions.Faction; -import net.sevenstars.middleearth.resources.datas.npcs.NpcData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearItemData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearSlotData; - -import java.util.List; - -public class RohirricNpcDataPool { - private final static RegistryKey FACTION = FactionsME.ROHAN; - private final static String FACTION_BASE = FACTION.getValue().getPath() + ".%s"; - - private final static int LIGHT_GREEN = 0x516c42; - private final static int DARK_GREEN = 0x2d4122; - private final static int LIGHT_RED = 0x7f4442; - private final static int DARK_RED = 0x56302d; - private final static int LIGHT_BEIGE = 0xa39269; - private final static int DARK_BEIGE = 0x827052; - private final static int LIGHT_BROWN = 0x69594d; - private final static int DARK_BROWN = 0x44382f; - - public final static NpcData ROHAN_MILITIA; - public final static NpcData ROHAN_SOLDIER; - public final static NpcData ROHAN_KNIGHT; - public final static NpcData ROHAN_ROYAL_GUARD; - public final static NpcData ROHAN_EORLING_MARSHAL; - public final static NpcData ROHAN_HORSE_LORD; - - public static List fetchAll() { - return List.of( - ROHAN_MILITIA, - ROHAN_SOLDIER, - ROHAN_KNIGHT, - ROHAN_ROYAL_GUARD, - ROHAN_EORLING_MARSHAL, - ROHAN_HORSE_LORD - ); - } - - static { - ROHAN_MILITIA = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("militia")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_HELMET).withWeight(6)) - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_SKULLCAP).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_LEATHER_HELMET).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_ORNAMENTED_LEATHER_HELMET)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withCape(BackAttachmentsME.ROHIRRIC_CAPE).withColor(LIGHT_GREEN).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withCape(BackAttachmentsME.ROHIRRIC_CAPE).withColor(DARK_GREEN).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withCape(BackAttachmentsME.ROHIRRIC_CAPE).withColor(LIGHT_BROWN).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withCape(BackAttachmentsME.ROHIRRIC_CAPE).withColor(DARK_BROWN).withWeight(4)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withCape(BackAttachmentsME.ROHIRRIC_CAPE).withColor(LIGHT_BEIGE).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withCape(BackAttachmentsME.ROHIRRIC_CAPE).withColor(DARK_BEIGE).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_COAT).withColor(LIGHT_GREEN)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_COAT).withColor(DARK_GREEN)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_COAT).withColor(LIGHT_BEIGE)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_COAT).withColor(DARK_BEIGE)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_COAT).withColor(LIGHT_BROWN)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_COAT).withColor(DARK_BROWN)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.STURDY_BOOTS)) - .add(NpcGearItemData.create(EquipmentItemsME.TRAVELLING_BOOTS)) - .add(NpcGearItemData.create(EquipmentItemsME.HIGH_CUT_BOOTS)) - ) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.BRONZE_SPEAR).withWeight(4)) - .add(NpcGearItemData.create(WeaponItemsME.BRONZE_SWORD).withWeight(3)) - .add(NpcGearItemData.create(ToolItemsME.BRONZE_AXE).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.IRON_SPEAR).withWeight(2)) - .add(NpcGearItemData.create(Items.IRON_SWORD)) - .add(NpcGearItemData.create(Items.IRON_AXE)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.KITE_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.HEATER_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.ROUND_SHIELD)) - .add(NpcGearItemData.create().withWeight(5)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - ROHAN_SOLDIER = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("soldier")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_MILITIA_HELMET).withWeight(6)) - .add(NpcGearItemData.create(EquipmentItemsME.LEATHER_SKULLCAP).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_BRACED_MILITIA_HELMET).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_MILITIA_HELMET).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_ORNAMENTED_MILITIA_HELMET)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_VEST).withColor(LIGHT_GREEN)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_VEST).withColor(DARK_GREEN)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_VEST).withColor(LIGHT_BEIGE)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_VEST).withColor(DARK_BEIGE)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_VEST).withColor(LIGHT_BROWN)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_VEST).withColor(DARK_BROWN)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_SCALE_VEST).withColor(LIGHT_GREEN)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_SCALE_VEST).withColor(DARK_GREEN)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_SCALE_VEST).withColor(LIGHT_BEIGE)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_SCALE_VEST).withColor(DARK_BEIGE)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_SCALE_VEST).withColor(LIGHT_BROWN)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_SCALE_VEST).withColor(DARK_BROWN)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_GAMBESON).withColor(LIGHT_GREEN)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_GAMBESON).withColor(DARK_GREEN)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_GAMBESON).withColor(LIGHT_BEIGE)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_GAMBESON).withColor(DARK_BEIGE)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_GAMBESON).withColor(LIGHT_BROWN)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_GAMBESON).withColor(DARK_BROWN)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.STURDY_BOOTS)) - .add(NpcGearItemData.create(EquipmentItemsME.TRAVELLING_BOOTS)) - .add(NpcGearItemData.create(EquipmentItemsME.HIGH_CUT_BOOTS)) - ) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_SPEAR).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_SWORD)) - .add(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_AXE)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_SHIELD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_BUCKING_HORSE_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_GALLOPING_HORSE_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_HORSE_HEAD_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_PLAINSMAN_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_TWIN_HORSES_SHIELD)) - .add(NpcGearItemData.create().withWeight(10)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - ROHAN_KNIGHT = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("knight")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_SOLDIER_HELMET).withWeight(6)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_MILITIA_HELMET).withWeight(6)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_BRACED_MILITIA_HELMET).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_MILITIA_HELMET).withWeight(3)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_ORNAMENTED_MILITIA_HELMET)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_ORNAMENTED_SOLDIER_HELMET)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_LEATHER_VEST).withColor(LIGHT_RED)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_LEATHER_VEST).withColor(DARK_RED)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_LEATHER_SCALE_VEST).withColor(LIGHT_RED)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_REINFORCED_LEATHER_SCALE_VEST).withColor(DARK_RED)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_BRACED_MAIL_SHIRT).withColor(LIGHT_RED)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_BRACED_MAIL_SHIRT).withColor(DARK_RED)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_SCALE_VEST).withColor(LIGHT_RED)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_SCALE_VEST).withColor(DARK_RED)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_VEST).withColor(LIGHT_RED)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_LEATHER_VEST).withColor(DARK_RED)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.STURDY_BOOTS)) - .add(NpcGearItemData.create(EquipmentItemsME.TRAVELLING_BOOTS)) - .add(NpcGearItemData.create(EquipmentItemsME.HIGH_CUT_BOOTS)) - ) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_SWORD)) - .add(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_AXE)) - .add(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_SPEAR)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_SHIELD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_BUCKING_HORSE_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_GALLOPING_HORSE_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_HORSE_HEAD_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_PLAINSMAN_SHIELD)) - .add(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_TWIN_HORSES_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - ROHAN_ROYAL_GUARD = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("royal_guard")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_ROYAL_GUARD_HELMET))) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_SCALE_HAUBERK).withWeight(6)) - .add(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_ORNAMENTED_SCALE_HAUBERK)) - ) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.ROHIRRIC_SCALE_JACKET))) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.HIGH_CUT_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_NOBLE_SPEAR).withWeight(6)) - .add(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_NOBLE_SWORD)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_ROYAL_GUARD_SHIELD))) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - ROHAN_EORLING_MARSHAL = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("eorling_marshal")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.EORLING_MARSHAL_HELMET))) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.EORLING_MARSHAL_CHESTPLATE))) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.EORLING_MARSHAL_LEGGINGS))) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.EORLING_MARSHAL_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_NOBLE_SWORD).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_NOBLE_SPEAR)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_EORLING_SHIELD)) - .add(NpcGearItemData.create().withWeight(3)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - ROHAN_HORSE_LORD = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("horse_lord")), RacesME.HUMAN, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.HORSE_LORD_HELMET))) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.HORSE_LORD_CHESTPLATE))) - .add(EquipmentSlot.LEGS, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.HORSE_LORD_LEGGINGS))) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.HORSE_LORD_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_NOBLE_SWORD)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.ROHIRRIC_ORNAMENTED_SHIELD)) - .add(NpcGearItemData.create().withWeight(3)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/ShireNpcDataPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/ShireNpcDataPool.java deleted file mode 100644 index 5ff1e7af2f..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/npcs/pools/ShireNpcDataPool.java +++ /dev/null @@ -1,92 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.npcs.pools; - -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.item.Items; -import net.minecraft.registry.RegistryKey; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.item.EquipmentItemsME; -import net.sevenstars.middleearth.item.ToolItemsME; -import net.sevenstars.middleearth.item.WeaponItemsME; -import net.sevenstars.middleearth.item.utils.armor.backAttachments.BackAttachmentsME; -import net.sevenstars.middleearth.resources.FactionsME; -import net.sevenstars.middleearth.resources.NpcME; -import net.sevenstars.middleearth.resources.NpcTextureDatasME; -import net.sevenstars.middleearth.resources.RacesME; -import net.sevenstars.middleearth.resources.datas.factions.Faction; -import net.sevenstars.middleearth.resources.datas.npcs.NpcData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearItemData; -import net.sevenstars.middleearth.resources.datas.npcs.data.NpcGearSlotData; - -import java.util.List; - -public class ShireNpcDataPool { - private final static RegistryKey FACTION = FactionsME.SHIRE; - private final static String FACTION_BASE = FACTION.getValue().getPath() + ".%s"; - - private final static int DARK_BEIGE = 0xa89371; - private final static int DARK_GREEN = 0x336339; - private final static int BROWN = 0x59341e; - private final static int DARK = 0x342c27; - - public final static NpcData SHIRE_MILITIA; - public final static NpcData SHIRE_SHIRRIFF; - - public static List fetchAll() { - return List.of( - SHIRE_MILITIA, - SHIRE_SHIRRIFF - ); - } - - static { - SHIRE_MILITIA = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("militia")), RacesME.HOBBIT, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.STRAW_HAT).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.WOVEN_HAT).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.BYCOCKET).withColor(BROWN).withWeight(2)) - .add(NpcGearItemData.create(EquipmentItemsME.KETTLE_HAT)) - ) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON).withColor(DARK)) - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON).withColor(DARK_BEIGE)) - .add(NpcGearItemData.create(EquipmentItemsME.GAMBESON).withColor(BROWN)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withColor(DARK).withCape(BackAttachmentsME.CLOAK, DARK)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withColor(DARK_BEIGE).withCape(BackAttachmentsME.CLOAK, DARK)) - .add(NpcGearItemData.create(EquipmentItemsME.ARMING_COAT).withColor(BROWN).withCape(BackAttachmentsME.CLOAK, DARK)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.STURDY_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.BRONZE_SWORD)) - .add(NpcGearItemData.create(Items.IRON_SWORD)) - .add(NpcGearItemData.create(WeaponItemsME.STEEL_SWORD)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR).withWeight(3)) - .add(NpcGearItemData.create(WeaponItemsME.ROUND_SHIELD)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - - SHIRE_SHIRRIFF = new NpcData(Identifier.of(MiddleEarth.MOD_ID, FACTION_BASE.formatted("shirriff")), RacesME.HOBBIT, FACTION, NpcTextureDatasME.GENERIC_HUMAN, List.of( - NpcGearData.create() - .add(EquipmentSlot.HEAD, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.SHIRRIFF_HAT))) - .add(EquipmentSlot.CHEST, NpcGearSlotData.create() - .add(NpcGearItemData.create(EquipmentItemsME.SURCOAT).withColor(DARK_BEIGE)) - .add(NpcGearItemData.create(EquipmentItemsME.SURCOAT).withColor(DARK_GREEN)) - ) - .add(EquipmentSlot.FEET, NpcGearSlotData.create(NpcGearItemData.create(EquipmentItemsME.STURDY_BOOTS))) - .add(EquipmentSlot.MAINHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(WeaponItemsME.STEEL_SWORD)) - ) - .add(EquipmentSlot.OFFHAND, NpcGearSlotData.create() - .add(NpcGearItemData.create(Items.AIR).withWeight(3)) - .add(NpcGearItemData.create(ToolItemsME.PIPE).withWeight(3)) - .add(NpcGearItemData.create(ToolItemsME.CLAY_PIPE).withWeight(2)) - .add(NpcGearItemData.create(ToolItemsME.BRIMMINGBEND_PIPE)) - .add(NpcGearItemData.create(Items.BOOK)) - ) - ), NpcME.COMMON_NPC_ATTRIBUTES); - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/Race.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/Race.java index 22a76ba7c8..afa9520b97 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/Race.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/Race.java @@ -11,15 +11,12 @@ import net.minecraft.text.Text; import net.minecraft.util.Formatting; import net.minecraft.util.Identifier; -import net.minecraft.world.World; import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.entity.ModEntities; import net.sevenstars.middleearth.entity.npcs.NpcEntity; -import net.sevenstars.middleearth.resources.datas.RaceType; +import net.sevenstars.middleearth.resources.datas.common.RaceType; import net.sevenstars.middleearth.resources.datas.attributes.AttributePool; import net.sevenstars.middleearth.resources.datas.attributes.AttributePoolElement; -import net.sevenstars.middleearth.resources.datas.races.data.EntityCategory; -import net.sevenstars.middleearth.utils.IdentifierUtil; +import net.sevenstars.middleearth.resources.datas.common.EntityCategories; import java.util.ArrayList; import java.util.HashMap; @@ -40,14 +37,14 @@ public class Race { private final RaceType raceType; private final String translatableKey; private final AttributePool playerAttributePool; - private final HashMap npcAttributePools; + private final HashMap npcAttributePools; private List joinCommands; private List leaveCommands; public Race(String id, String raceTypeValue, NbtCompound playerAttributes, NbtCompound npcAttributes, Optional> joinCommands, Optional> leaveCommands){ // Create id - this.id = IdentifierUtil.getIdentifierFromString(id); + this.id = MiddleEarth.fetchId(id); this.translatableKey = "race.".concat(this.id.toTranslationKey()); // Create model this.raceType = RaceType.valueOf(raceTypeValue.toUpperCase()); @@ -55,7 +52,7 @@ public Race(String id, String raceTypeValue, NbtCompound playerAttributes, NbtCo this.playerAttributePool = new AttributePool(playerAttributes); this.npcAttributePools = new HashMap<>(); // new AttributePool(npcAttributes); - for(var category : EntityCategory.values()){ + for(var category : EntityCategories.values()){ if(npcAttributes.contains(category.name())){ this.npcAttributePools.put(category, new AttributePool(npcAttributes.getCompound(category.name()).get())); } @@ -69,7 +66,7 @@ public Race(String id, String raceTypeValue, NbtCompound playerAttributes, NbtCo leaveCommands.ifPresent(nbtCompound -> this.leaveCommands.addAll(nbtCompound)); } - public Race(Identifier id, RaceType raceType, AttributePool playerAttributePool, HashMap npcAttributePools, List joinCommands, List leaveCommands) { + public Race(Identifier id, RaceType raceType, AttributePool playerAttributePool, HashMap npcAttributePools, List joinCommands, List leaveCommands) { this.id = id; this.raceType = raceType; this.translatableKey = "race.".concat(this.id.toTranslationKey()); @@ -82,17 +79,21 @@ public Race(Identifier id, RaceType raceType, AttributePool playerAttributePool, public Identifier getId() { return id; } + private String getIdValue() { return this.id.toString(); } + private String getRaceTypeValue() { return raceType.toString().toUpperCase(); } + private NbtCompound getPlayerAttributePool() { if(playerAttributePool == null) return null; return playerAttributePool.getNbt(); } + private NbtCompound getNpcAttributePool() { if(npcAttributePools == null) return null; @@ -108,6 +109,7 @@ public Optional> getJoinCommands() { return Optional.empty(); return Optional.of(this.joinCommands); } + public Optional> getLeaveCommands() { if(this.leaveCommands == null) return Optional.empty(); @@ -118,23 +120,10 @@ public MutableText getFullName() { return Text.translatable(translatableKey); } - public LivingEntity getModel(World world) { - NpcEntity entity = switch (raceType) { - case RaceType.HUMAN -> new NpcEntity(ModEntities.NPC, world); - case RaceType.DWARF -> new NpcEntity(ModEntities.NPC, world); - case RaceType.HOBBIT -> new NpcEntity(ModEntities.NPC, world); - case RaceType.ELF -> new NpcEntity(ModEntities.NPC, world); - case RaceType.ORC -> new NpcEntity(ModEntities.NPC, world); - case RaceType.URUK -> new NpcEntity(ModEntities.NPC, world); - default -> new NpcEntity(ModEntities.NPC, world); - }; - entity.setAiDisabled(true); - return entity; - } - public void applyPlayerAttributes(PlayerEntity playerEntity){ playerAttributePool.apply(playerEntity); } + public void reverseAttributes(PlayerEntity playerEntity){ AttributePool.reverse(playerEntity); } @@ -180,7 +169,7 @@ public void drawTooltip(LivingEntity entity, DrawContext context, TextRenderer r public void applyNpcAttributes(NpcEntity npcEntity) { AttributePool.reverse(npcEntity); - npcAttributePools.get(EntityCategory.SHARED).apply(npcEntity); + npcAttributePools.get(EntityCategories.SHARED).apply(npcEntity); npcAttributePools.get(npcEntity.getNpcCategory()).apply(npcEntity); } } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/RaceLookup.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/RaceLookup.java index be12253d02..e9acaca9d7 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/RaceLookup.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/RaceLookup.java @@ -3,7 +3,7 @@ import net.minecraft.registry.Registry; import net.minecraft.util.Identifier; import net.minecraft.world.World; -import net.sevenstars.middleearth.resources.RacesME; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; import java.util.ArrayList; import java.util.List; @@ -11,11 +11,11 @@ public class RaceLookup { public static List getAllRaces(World world) { - return world.getRegistryManager().getOrThrow(RacesME.KEY).stream().toList(); + return world.getRegistryManager().getOrThrow(DynamicRegistriesME.RACE).stream().toList(); } public static List getAllRaces(World world, List ids) { - Registry registry = world.getRegistryManager().getOrThrow(RacesME.KEY); + Registry registry = world.getRegistryManager().getOrThrow(DynamicRegistriesME.RACE); List list = new ArrayList<>(); for(Identifier id : ids){ Race race = registry.get(id); @@ -26,7 +26,7 @@ public static List getAllRaces(World world, List ids) { } public static Race getRace(World world, Identifier identifier) { - Optional race = world.getRegistryManager().getOrThrow(RacesME.KEY).getOptionalValue(identifier); + Optional race = world.getRegistryManager().getOrThrow(DynamicRegistriesME.RACE).getOptionalValue(identifier); return race.orElse(null); } } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/RaceUtil.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/RaceUtil.java index 15ec5a1673..69138e7461 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/RaceUtil.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/RaceUtil.java @@ -2,7 +2,7 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.server.network.ServerPlayerEntity; -import net.sevenstars.middleearth.resources.datas.RaceType; +import net.sevenstars.middleearth.resources.datas.common.RaceType; import net.sevenstars.middleearth.resources.datas.attributes.AttributePool; import net.sevenstars.middleearth.resources.persistent_datas.PlayerDataService; diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/data/EntityCategory.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/data/EntityCategory.java deleted file mode 100644 index 7f338bb0ee..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/data/EntityCategory.java +++ /dev/null @@ -1,7 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.races.data; - -public enum EntityCategory { - SHARED, - MALE, - FEMALE -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/data/NpcTextureDataPreset.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/data/NpcTextureDataPreset.java deleted file mode 100644 index fcf9fa2636..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/data/NpcTextureDataPreset.java +++ /dev/null @@ -1,401 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.races.data; - -import net.minecraft.nbt.NbtCompound; -import net.minecraft.nbt.NbtList; -import net.minecraft.nbt.NbtString; -import net.minecraft.registry.RegistryKey; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.resources.datas.races.data.npctextures.NpcTextureMaterial; -import net.sevenstars.middleearth.resources.datas.races.data.npctextures.NpcTexturePattern; -import net.sevenstars.middleearth.resources.datas.races.data.npctextures.NpcTextureType; - -import java.util.ArrayList; -import java.util.List; - -public class NpcTextureDataPreset { - public final static String EMPTY_VALUE_KEY = "NONE"; - private int weight; - List bodyPatterns; - List headPatterns; - List scarPatterns; - List earPatterns; - List nosePatterns; - List eyePatterns; - List hairPatterns; - List eyebrowPatterns; - List beardPatterns; - List clothingPatterns; - - List skinMaterials; - List eyeMaterials; - List hairMaterials; - List clothingMaterials; - - private boolean haveEmissiveEyes; - - public NpcTextureDataPreset(){ - this.weight = 1; - bodyPatterns = new ArrayList<>(); - headPatterns = new ArrayList<>(); - scarPatterns = new ArrayList<>(); - earPatterns = new ArrayList<>(); - nosePatterns = new ArrayList<>(); - skinMaterials = new ArrayList<>(); - - eyePatterns = new ArrayList<>(); - eyeMaterials = new ArrayList<>(); - - hairPatterns = new ArrayList<>(); - eyebrowPatterns = new ArrayList<>(); - beardPatterns = new ArrayList<>(); - hairMaterials = new ArrayList<>(); - - clothingPatterns = new ArrayList<>(); - clothingMaterials = new ArrayList<>(); - } - - public NpcTextureDataPreset(NbtCompound compound) { - this.weight = compound.contains("weight") ? compound.getInt("weight").get() : 1; - - bodyPatterns = new ArrayList<>(); - headPatterns = new ArrayList<>(); - scarPatterns = new ArrayList<>(); - earPatterns = new ArrayList<>(); - nosePatterns = new ArrayList<>(); - skinMaterials = new ArrayList<>(); - - eyePatterns = new ArrayList<>(); - eyeMaterials = new ArrayList<>(); - - hairPatterns = new ArrayList<>(); - eyebrowPatterns = new ArrayList<>(); - beardPatterns = new ArrayList<>(); - hairMaterials = new ArrayList<>(); - - clothingPatterns = new ArrayList<>(); - clothingMaterials = new ArrayList<>(); - - fetchElements(compound, NpcTextureType.SKIN); - fetchElements(compound, NpcTextureType.BODY); - fetchElements(compound, NpcTextureType.HEAD); - fetchElements(compound, NpcTextureType.SCAR); - fetchElements(compound, NpcTextureType.EAR); - fetchElements(compound, NpcTextureType.NOSE); - fetchElements(compound, NpcTextureType.EYE); - fetchElements(compound, NpcTextureType.HAIR); - fetchElements(compound, NpcTextureType.EYEBROW); - fetchElements(compound, NpcTextureType.BEARD); - fetchElements(compound, NpcTextureType.CLOTHING); - - loadHeadPool(compound); - } - - private void loadHeadPool(NbtCompound compound) { - - } - - public NbtCompound getNbt(){ - NbtCompound nbt = new NbtCompound(); - if(weight != 1){ - nbt.putInt("weight", weight); - } - if(isListFilled(skinMaterials)){ - NbtCompound compound = new NbtCompound(); - compound.put("materials", createStringList(skinMaterials)); - nbt.put(NpcTextureType.SKIN.name(), compound); - } - if(isListFilled(bodyPatterns)){ - NbtCompound compound = new NbtCompound(); - compound.put("patterns", createStringList(bodyPatterns)); - nbt.put(NpcTextureType.BODY.name(), compound); - } - if(isListFilled(headPatterns)){ - NbtCompound compound = new NbtCompound(); - compound.put("patterns", createStringList(headPatterns)); - - nbt.put(NpcTextureType.HEAD.name(), compound); - } - if(isListFilled(scarPatterns)){ - NbtCompound compound = new NbtCompound(); - compound.put("patterns", createStringList(scarPatterns)); - nbt.put(NpcTextureType.SCAR.name(), compound); - } - if(isListFilled(earPatterns)){ - NbtCompound compound = new NbtCompound(); - compound.put("patterns", createStringList(earPatterns)); - nbt.put(NpcTextureType.EAR.name(), compound); - } - if(isListFilled(nosePatterns)){ - NbtCompound compound = new NbtCompound(); - compound.put("patterns", createStringList(nosePatterns)); - nbt.put(NpcTextureType.NOSE.name(), compound); - } - if(isListFilled(eyePatterns) || isListFilled(eyeMaterials)){ - NbtCompound compound = new NbtCompound(); - - compound.put("patterns", createStringList(eyePatterns)); - compound.put("materials", createStringList(eyeMaterials)); - - if(haveEmissiveEyes) - compound.putBoolean("is_emissive", true); - - nbt.put(NpcTextureType.EYE.name(), compound); - } - if(isListFilled(hairPatterns) || isListFilled(hairMaterials)){ - NbtCompound compound = new NbtCompound(); - - compound.put("patterns", createStringList(hairPatterns)); - compound.put("materials", createStringList(hairMaterials)); - - nbt.put(NpcTextureType.HAIR.name(), compound); - } - if(isListFilled(eyebrowPatterns)){ - NbtCompound compound = new NbtCompound(); - compound.put("patterns", createStringList(eyebrowPatterns)); - nbt.put(NpcTextureType.EYEBROW.name(), compound); - } - if(isListFilled(beardPatterns)){ - NbtCompound compound = new NbtCompound(); - compound.put("patterns", createStringList(beardPatterns)); - nbt.put(NpcTextureType.BEARD.name(), compound); - } - if(isListFilled(clothingPatterns) || isListFilled(clothingMaterials)){ - NbtCompound compound = new NbtCompound(); - - compound.put("patterns", createStringList(clothingPatterns)); - compound.put("materials", createStringList(clothingMaterials)); - - nbt.put(NpcTextureType.CLOTHING.name(), compound); - } - - return nbt; - } - - private boolean isListFilled(List listToCheck){ - return (listToCheck != null && !listToCheck.isEmpty()); - } - - private NbtList createStringList(List values){ - NbtList nbtList = new NbtList(); - for(int i = 0; i < values.size(); i++){ - nbtList.add(i, NbtString.of(values.get(i))); - } - return nbtList; - } - - private void fetchElements(NbtCompound compound, NpcTextureType type){ - if(compound.contains(type.name())){ - NbtCompound value = compound.getCompound(type.name()).get(); - - if(value.contains("patterns")){ - List fetchedValues = getStringListFromNbtList(value, "patterns"); - switch (type){ - case BODY -> bodyPatterns.addAll(fetchedValues); - case HEAD -> headPatterns.addAll(fetchedValues); - case SCAR -> scarPatterns.addAll(fetchedValues); - case EAR -> earPatterns.addAll(fetchedValues); - case NOSE -> nosePatterns.addAll(fetchedValues); - case EYE -> eyePatterns.addAll(fetchedValues); - case HAIR -> hairPatterns.addAll(fetchedValues); - case EYEBROW -> eyebrowPatterns.addAll(fetchedValues); - case BEARD -> beardPatterns.addAll(fetchedValues); - case CLOTHING -> clothingPatterns.addAll(fetchedValues); - } - } - if(value.contains("materials")){ - List fetchedValues = getStringListFromNbtList(value, "materials"); - switch (type){ - case SKIN -> skinMaterials.addAll(fetchedValues); - case EYE -> eyeMaterials.addAll(fetchedValues); - case HAIR -> hairMaterials.addAll(fetchedValues); - case CLOTHING -> clothingMaterials.addAll(fetchedValues); - } - } - if(type == NpcTextureType.EYE && value.contains("is_emissive")){ - this.haveEmissiveEyes = value.getBoolean("is_emissive").get(); - } - } - } - - private List getStringListFromNbtList(NbtCompound nbt, String name){ - NbtList nbtList = nbt.getList(name).get(); - List fetchedValues = new ArrayList<>(); - for(int i = 0; i < nbtList.size(); i++){ - fetchedValues.add(nbtList.getString(i).get()); - } - return fetchedValues; - } - - public NpcTextureDataPreset withWeight(int weight){ - this.weight = weight; - return this; - } - - public NpcTextureDataPreset withEmissiveEyes(boolean value){ - this.haveEmissiveEyes = value; - return this; - } - - public NpcTextureDataPreset withPatterns(NpcTextureType type, List> patterns){ - if(patterns != null) - patterns.forEach(x -> { - if(x == null){ - addToPattern(type, EMPTY_VALUE_KEY); - } else { - addToPattern(type, x.getValue().getPath()); - } - }); - return this; - } - public NpcTextureDataPreset withPatternValues(NpcTextureType type, List patterns){ - if(patterns != null) - patterns.forEach(x -> { - if(x == null){ - addToPattern(type, EMPTY_VALUE_KEY); - } else { - addToPattern(type, Identifier.of(x).getPath()); - } - }); - return this; - } - public NpcTextureDataPreset overwritePatterns(NpcTextureType type, List> patterns){ - clearAllPatterns(type); - withPatterns(type, patterns); - return this; - } - public NpcTextureDataPreset clearPatterns(NpcTextureType type) { - clearAllPatterns(type); - return this; - } - public NpcTextureDataPreset withMaterials(NpcTextureType type, List> materials){ - materials.forEach(x -> addToMaterial(type, x.getValue().getPath())); - return this; - } - public NpcTextureDataPreset withMaterialValues(NpcTextureType type, List materials){ - materials.forEach(x -> addToMaterial(type, Identifier.of(x).getPath())); - return this; - } - public NpcTextureDataPreset overwriteMaterials(NpcTextureType type, List> materials){ - clearAllMaterials(type); - withMaterials(type, materials); - return this; - } - public NpcTextureDataPreset clearMaterials(NpcTextureType type) { - clearAllMaterials(type); - return this; - } - - public int getWeight(){ - return weight; - } - - public void addToPattern(NpcTextureType npcTextureType, String value) { - switch (npcTextureType){ - case BODY -> bodyPatterns.add(value); - case HEAD -> headPatterns.add(value); - case SCAR -> scarPatterns.add(value); - case EAR -> earPatterns.add(value); - case NOSE -> nosePatterns.add(value); - case EYE -> eyePatterns.add(value); - case HAIR -> hairPatterns.add(value); - case EYEBROW -> eyebrowPatterns.add(value); - case BEARD -> beardPatterns.add(value); - case CLOTHING -> clothingPatterns.add(value); - }; - } - private void clearAllPatterns(NpcTextureType npcTextureType) { - switch (npcTextureType){ - case BODY -> bodyPatterns.clear(); - case HEAD -> headPatterns.clear(); - case SCAR -> scarPatterns.clear(); - case EAR -> earPatterns.clear(); - case NOSE -> nosePatterns.clear(); - case EYE -> eyePatterns.clear(); - case HAIR -> hairPatterns.clear(); - case EYEBROW -> eyebrowPatterns.clear(); - case BEARD -> beardPatterns.clear(); - case CLOTHING -> clothingPatterns.clear(); - }; - } - - public void addToMaterial(NpcTextureType npcTextureType, String value) { - switch (npcTextureType){ - case SKIN -> skinMaterials.add(value); - case EYE -> eyeMaterials.add(value); - case HAIR, EYEBROW, BEARD -> hairMaterials.add(value); - case CLOTHING -> clothingMaterials.add(value); - }; - } - private void clearAllMaterials(NpcTextureType npcTextureType) { - switch (npcTextureType){ - case SKIN -> skinMaterials.clear(); - case EYE -> eyeMaterials.clear(); - case HAIR, EYEBROW, BEARD -> hairMaterials.clear(); - case CLOTHING -> clothingMaterials.clear(); - }; - } - - public List getPatterns(NpcTextureType npcTextureType) { - return switch (npcTextureType){ - case BODY -> bodyPatterns; - case HEAD -> headPatterns; - case EAR -> earPatterns; - case NOSE -> nosePatterns; - case SCAR -> scarPatterns; - case EYE -> eyePatterns; - case HAIR -> hairPatterns; - case EYEBROW -> eyebrowPatterns; - case BEARD -> beardPatterns; - case CLOTHING -> clothingPatterns; - default -> new ArrayList(); - }; - } - public List getMaterials(NpcTextureType npcTextureType) { - return switch (npcTextureType) { - case SKIN, BODY, HEAD, SCAR, EAR, NOSE -> skinMaterials; - case EYE -> eyeMaterials; - case HAIR, EYEBROW, BEARD -> hairMaterials; - case CLOTHING -> clothingMaterials; - default -> new ArrayList(); - }; - } - - public Boolean haveEmissiveEyes() { - return haveEmissiveEyes; - } - - public NpcTextureDataPreset copy() { - var copiedNpcTextureDataPreset = new NpcTextureDataPreset(); - for(String value : getMaterials(NpcTextureType.SKIN)) - copiedNpcTextureDataPreset.addToMaterial(NpcTextureType.SKIN, value); - for(String value : getPatterns(NpcTextureType.HEAD)) - copiedNpcTextureDataPreset.addToPattern(NpcTextureType.HEAD, value); - for(String value : getPatterns(NpcTextureType.BODY)) - copiedNpcTextureDataPreset.addToPattern(NpcTextureType.BODY, value); - for(String value : getPatterns(NpcTextureType.NOSE)) - copiedNpcTextureDataPreset.addToPattern(NpcTextureType.NOSE, value); - for(String value : getPatterns(NpcTextureType.EAR)) - copiedNpcTextureDataPreset.addToPattern(NpcTextureType.EAR, value); - - for(String value : getMaterials(NpcTextureType.EYE)) - copiedNpcTextureDataPreset.addToMaterial(NpcTextureType.EYE, value); - for(String value : getPatterns(NpcTextureType.EYE)) - copiedNpcTextureDataPreset.addToPattern(NpcTextureType.EYE, value); - - for(String value : getMaterials(NpcTextureType.HAIR)) - copiedNpcTextureDataPreset.addToMaterial(NpcTextureType.HAIR, value); - for(String value : getPatterns(NpcTextureType.EYEBROW)) - copiedNpcTextureDataPreset.addToPattern(NpcTextureType.EYEBROW, value); - for(String value : getPatterns(NpcTextureType.HAIR)) - copiedNpcTextureDataPreset.addToPattern(NpcTextureType.HAIR, value); - for(String value : getPatterns(NpcTextureType.BEARD)) - copiedNpcTextureDataPreset.addToPattern(NpcTextureType.BEARD, value); - - for(String value : getMaterials(NpcTextureType.CLOTHING)) - copiedNpcTextureDataPreset.addToMaterial(NpcTextureType.CLOTHING, value); - for(String value : getPatterns(NpcTextureType.CLOTHING)) - copiedNpcTextureDataPreset.addToPattern(NpcTextureType.CLOTHING, value); - - return copiedNpcTextureDataPreset; - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/data/npctextures/NpcTexture.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/data/npctextures/NpcTexture.java deleted file mode 100644 index 3daff3ef83..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/data/npctextures/NpcTexture.java +++ /dev/null @@ -1,59 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.races.data.npctextures; - -import com.mojang.serialization.Codec; -import com.mojang.serialization.codecs.RecordCodecBuilder; -import net.minecraft.network.RegistryByteBuf; -import net.minecraft.network.codec.PacketCodec; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.entry.RegistryEntry; - -public class NpcTexture { - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { - return instance.group( - NpcTextureMaterial.ENTRY_CODEC.fieldOf("material").forGetter(NpcTexture::material), - NpcTexturePattern.ENTRY_CODEC.fieldOf("pattern").forGetter(NpcTexture::pattern)) - .apply(instance, NpcTexture::new); - }); - - public static final PacketCodec PACKET_CODEC; - - private final RegistryEntry material; - private final RegistryEntry pattern; - - public NpcTexture(RegistryEntry material, RegistryEntry pattern) { - this.material = material; - this.pattern = pattern; - } - - public boolean equals(RegistryEntry pattern, RegistryEntry material) { - return pattern.equals(this.pattern) && material.equals(this.material); - } - - public RegistryEntry material() { - return this.material; - } - - public RegistryEntry pattern() { - return this.pattern; - } - - public static String createPatternString(RegistryKey pattern, RegistryKey material){ - String patternPath = pattern.getValue().getPath(); - String materialPath = material.getValue().getPath(); - - return patternPath + "_" + materialPath; - } - public static String createPatternString(RegistryKey pattern){ - String patternPath = pattern.getValue().getPath(); - - return patternPath + "_*"; - } - - - static { - PACKET_CODEC = PacketCodec.tuple( - NpcTextureMaterial.ENTRY_PACKET_CODEC, NpcTexture::material, - NpcTexturePattern.ENTRY_PACKET_CODEC, NpcTexture::pattern, - NpcTexture::new); - } -} \ No newline at end of file diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/data/npctextures/NpcTextureMaterial.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/data/npctextures/NpcTextureMaterial.java deleted file mode 100644 index 74b58b7c17..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/data/npctextures/NpcTextureMaterial.java +++ /dev/null @@ -1,54 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.races.data.npctextures; - -import com.mojang.serialization.Codec; -import com.mojang.serialization.codecs.RecordCodecBuilder; -import net.minecraft.network.RegistryByteBuf; -import net.minecraft.network.codec.PacketCodec; -import net.minecraft.network.codec.PacketCodecs; -import net.minecraft.registry.entry.RegistryElementCodec; -import net.minecraft.registry.entry.RegistryEntry; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.resources.CharacterMaterialsME; - -public class NpcTextureMaterial { - - public static final PacketCodec PACKET_CODEC; - public static final Codec> ENTRY_CODEC; - public static final PacketCodec> ENTRY_PACKET_CODEC; - - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { - return instance.group( - Identifier.CODEC.fieldOf("asset_id").forGetter(NpcTextureMaterial::getIdentifier), - Codec.STRING.fieldOf("type").forGetter(NpcTextureMaterial::getTypeValue)) - .apply(instance, NpcTextureMaterial::new); - }); - private Identifier assetId; - private NpcTextureType type; - public NpcTextureMaterial(Identifier assetId, String type){ - this.assetId = assetId; - this.type = NpcTextureType.valueOf(type.toUpperCase()); - } - public NpcTextureMaterial(Identifier id, NpcTextureType type){ - this.assetId = id; - this.type = type; - } - public Identifier getIdentifier() { - return assetId; - } - - public NpcTextureType getType(){ - return this.type; - } - - public String getTypeValue() { - return this.type.name().toUpperCase(); - } - - static { - PACKET_CODEC = PacketCodec.tuple( - Identifier.PACKET_CODEC, NpcTextureMaterial::getIdentifier, - PacketCodecs.STRING, NpcTextureMaterial::getTypeValue, NpcTextureMaterial::new); - ENTRY_CODEC = RegistryElementCodec.of(CharacterMaterialsME.Keys.SKIN_KEY, CODEC); - ENTRY_PACKET_CODEC = PacketCodecs.registryEntry(CharacterMaterialsME.Keys.SKIN_KEY, PACKET_CODEC); - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/data/npctextures/NpcTexturePattern.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/data/npctextures/NpcTexturePattern.java deleted file mode 100644 index eabedc29f5..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/data/npctextures/NpcTexturePattern.java +++ /dev/null @@ -1,89 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.races.data.npctextures; - -import com.mojang.serialization.Codec; -import com.mojang.serialization.codecs.RecordCodecBuilder; -import net.minecraft.network.RegistryByteBuf; -import net.minecraft.network.codec.PacketCodec; -import net.minecraft.network.codec.PacketCodecs; -import net.minecraft.registry.entry.RegistryElementCodec; -import net.minecraft.registry.entry.RegistryEntry; -import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.resources.CharacterPatternsME; - -import java.util.Optional; - -public class NpcTexturePattern { - - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( - Identifier.CODEC.fieldOf("asset_id").forGetter(NpcTexturePattern::getIdentifier), - Codec.STRING.fieldOf("category").forGetter(NpcTexturePattern::getCategoryString), - Codec.BOOL.optionalFieldOf("has_addon").forGetter(NpcTexturePattern::hasAddonOptional)) - .apply(instance, NpcTexturePattern::new)); - - public static final PacketCodec PACKET_CODEC; - public static final Codec> ENTRY_CODEC; - public static final PacketCodec> ENTRY_PACKET_CODEC; - - private Identifier assetId; - private NpcTextureType category; - private Boolean hasAddon; - public NpcTexturePattern(Identifier assetId, String category, Optional hasAddon){ - this.assetId = assetId; - this.category = NpcTextureType.valueOf(category); - hasAddon.ifPresent(aBoolean -> this.hasAddon = aBoolean); - if(hasAddon.isPresent()){ - this.hasAddon = hasAddon.get(); - } else { - this.hasAddon = false; - } - } - - public NpcTexturePattern(Identifier assetId, String type, Boolean hasAddon){ - this.assetId = assetId; - this.category = NpcTextureType.valueOf(type.toUpperCase()); - this.hasAddon = hasAddon; - } - - public NpcTexturePattern(Identifier id, NpcTextureType category, Boolean hasAddon){ - this(id, category); - this.hasAddon = hasAddon; - } - public NpcTexturePattern(Identifier id, NpcTextureType category){ - this.assetId = id; - this.category = category; - } - public Identifier getIdentifier() { - return assetId; - } - - public NpcTextureType getCategory(){ - return this.category; - } - - public String getCategoryString() { - return this.category.name().toUpperCase(); - } - - private Optional hasAddonOptional() { - if(hasAddon == null || !hasAddon) - return Optional.empty(); - return Optional.of(true); - } - public Boolean hasAddonRawValue() { - return hasAddon; - } - - - static { - PACKET_CODEC = PacketCodec.tuple( - Identifier.PACKET_CODEC, - NpcTexturePattern::getIdentifier, - PacketCodecs.STRING, - NpcTexturePattern::getCategoryString, - PacketCodecs.BOOLEAN, - NpcTexturePattern::hasAddonRawValue, - NpcTexturePattern::new); - ENTRY_CODEC = RegistryElementCodec.of(CharacterPatternsME.Keys.SKIN_KEY, CODEC); - ENTRY_PACKET_CODEC = PacketCodecs.registryEntry(CharacterPatternsME.Keys.SKIN_KEY, PACKET_CODEC); - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/data/npctextures/NpcTextureType.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/data/npctextures/NpcTextureType.java deleted file mode 100644 index 7960b60109..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/races/data/npctextures/NpcTextureType.java +++ /dev/null @@ -1,15 +0,0 @@ -package net.sevenstars.middleearth.resources.datas.races.data.npctextures; - -public enum NpcTextureType { - SKIN, - BODY, - HEAD, - SCAR, - EAR, - NOSE, - EYE, - HAIR, - EYEBROW, - BEARD, - CLOTHING; -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/structure_manager_datas/StructureManagerData.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/structure_manager_datas/StructureManagerData.java index 49454f0437..dee224525b 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/structure_manager_datas/StructureManagerData.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/structure_manager_datas/StructureManagerData.java @@ -4,7 +4,6 @@ import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.util.Identifier; import net.sevenstars.middleearth.MiddleEarth; -import net.sevenstars.middleearth.utils.IdentifierUtil; import java.util.List; @@ -20,7 +19,7 @@ public class StructureManagerData { private final List spawnNestNodeData; public StructureManagerData(String id, List nests) { - this.id = IdentifierUtil.getIdentifierFromString(id); + this.id = MiddleEarth.fetchId(id); this.spawnNestNodeData = nests; } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/structure_manager_datas/StructureManagerDataLookup.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/structure_manager_datas/StructureManagerDataLookup.java index 756ffb62f1..1bb4d9edd6 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/structure_manager_datas/StructureManagerDataLookup.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/structure_manager_datas/StructureManagerDataLookup.java @@ -2,12 +2,12 @@ import net.minecraft.util.Identifier; import net.minecraft.world.World; -import net.sevenstars.middleearth.resources.StructureManagerDatasME; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; import java.util.Optional; public class StructureManagerDataLookup { public static Optional getStructureManagerData(World world, Identifier id) { - return world.getRegistryManager().getOrThrow(StructureManagerDatasME.KEY).getOptionalValue(id); + return world.getRegistryManager().getOrThrow(DynamicRegistriesME.STRUCTURE_MANAGER_DATA).getOptionalValue(id); } } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/structure_manager_datas/StructureSpawnNestPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/structure_manager_datas/StructureSpawnNestPool.java index b47a4595e8..d3aede8f99 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/structure_manager_datas/StructureSpawnNestPool.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/structure_manager_datas/StructureSpawnNestPool.java @@ -5,7 +5,7 @@ import net.minecraft.entity.EntityType; import net.minecraft.registry.RegistryKey; import net.minecraft.util.Identifier; -import net.sevenstars.middleearth.resources.FactionsME; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; import net.sevenstars.middleearth.resources.datas.factions.Faction; import java.util.Optional; @@ -17,7 +17,7 @@ public class StructureSpawnNestPool { EntityType.CODEC.fieldOf("entity_type").forGetter(StructureSpawnNestPool::getEntityType), Codec.INT.fieldOf("weight").forGetter(StructureSpawnNestPool::getWeight), Codec.INT.fieldOf("amount").forGetter(StructureSpawnNestPool::getAmount), - RegistryKey.createCodec(FactionsME.KEY).optionalFieldOf("faction_key").forGetter(StructureSpawnNestPool::getFaction), + RegistryKey.createCodec(DynamicRegistriesME.FACTION).optionalFieldOf("faction_key").forGetter(StructureSpawnNestPool::getFaction), Identifier.CODEC.optionalFieldOf("npc_identifier").forGetter(StructureSpawnNestPool::getNpcIdentifier), Codec.INT.optionalFieldOf("max_amount").forGetter(StructureSpawnNestPool::getMaxAmount) ).apply(instance, StructureSpawnNestPool::new)); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/CharacterTextureMaterial.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/CharacterTextureMaterial.java new file mode 100644 index 0000000000..e5bfc61801 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/CharacterTextureMaterial.java @@ -0,0 +1,56 @@ +package net.sevenstars.middleearth.resources.datas.texture_presets; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.network.RegistryByteBuf; +import net.minecraft.network.codec.PacketCodec; +import net.minecraft.network.codec.PacketCodecs; +import net.minecraft.registry.entry.RegistryElementCodec; +import net.minecraft.registry.entry.RegistryEntry; +import net.minecraft.util.Identifier; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; +import net.sevenstars.middleearth.resources.datas.common.CharacterMaterialTypes; + +public class CharacterTextureMaterial { + + public static final PacketCodec PACKET_CODEC; + public static final Codec> ENTRY_CODEC; + public static final PacketCodec> ENTRY_PACKET_CODEC; + + public static final Codec CODEC = RecordCodecBuilder.create((instance) -> { + return instance.group( + Identifier.CODEC.fieldOf("asset_id").forGetter(CharacterTextureMaterial::getIdentifier), + Codec.STRING.fieldOf("type").forGetter(CharacterTextureMaterial::getTypeValue)) + .apply(instance, CharacterTextureMaterial::new); + }); + private final Identifier assetId; + private final CharacterMaterialTypes type; + + public CharacterTextureMaterial(Identifier assetId, String type){ + this.assetId = assetId; + this.type = CharacterMaterialTypes.valueOf(type.toUpperCase()); + } + public CharacterTextureMaterial(Identifier id, CharacterMaterialTypes type){ + this.assetId = id; + this.type = type; + } + public Identifier getIdentifier() { + return assetId; + } + + public CharacterMaterialTypes getType(){ + return this.type; + } + + public String getTypeValue() { + return this.type.name().toUpperCase(); + } + + static { + PACKET_CODEC = PacketCodec.tuple( + Identifier.PACKET_CODEC, CharacterTextureMaterial::getIdentifier, + PacketCodecs.STRING, CharacterTextureMaterial::getTypeValue, CharacterTextureMaterial::new); + ENTRY_CODEC = RegistryElementCodec.of(DynamicRegistriesME.SKIN_MATERIAL, CODEC); + ENTRY_PACKET_CODEC = PacketCodecs.registryEntry(DynamicRegistriesME.SKIN_MATERIAL, PACKET_CODEC); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/CharacterTexturePattern.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/CharacterTexturePattern.java new file mode 100644 index 0000000000..0c67fc8464 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/CharacterTexturePattern.java @@ -0,0 +1,86 @@ +package net.sevenstars.middleearth.resources.datas.texture_presets; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.network.RegistryByteBuf; +import net.minecraft.network.codec.PacketCodec; +import net.minecraft.network.codec.PacketCodecs; +import net.minecraft.registry.entry.RegistryElementCodec; +import net.minecraft.registry.entry.RegistryEntry; +import net.minecraft.util.Identifier; +import net.sevenstars.middleearth.registries.DynamicRegistriesME; +import net.sevenstars.middleearth.resources.datas.common.CharacterPatternTypes; + +import java.util.Optional; + +public class CharacterTexturePattern { + + public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + Identifier.CODEC.fieldOf("asset_id").forGetter(CharacterTexturePattern::getIdentifier), + Codec.STRING.fieldOf("category").forGetter(CharacterTexturePattern::getCategoryString), + Codec.BOOL.optionalFieldOf("has_addon").forGetter(CharacterTexturePattern::hasAddonOptional)) + .apply(instance, CharacterTexturePattern::new)); + + public static final PacketCodec PACKET_CODEC; + public static final Codec> ENTRY_CODEC; + public static final PacketCodec> ENTRY_PACKET_CODEC; + + private final Identifier assetId; + private final CharacterPatternTypes patternType; + + private Boolean hasAddon; + public CharacterTexturePattern(Identifier assetId, String type, Optional hasAddon){ + this.assetId = assetId; + this.patternType = CharacterPatternTypes.valueOf(type); + this.hasAddon = hasAddon.orElse(false); + } + + public CharacterTexturePattern(Identifier assetId, String type, Boolean hasAddon){ + this.assetId = assetId; + this.patternType = CharacterPatternTypes.valueOf(type.toUpperCase()); + this.hasAddon = hasAddon; + } + + public CharacterTexturePattern(Identifier id, CharacterPatternTypes type, Boolean hasAddon){ + this(id, type); + this.hasAddon = hasAddon; + } + public CharacterTexturePattern(Identifier id, CharacterPatternTypes type){ + this.assetId = id; + this.patternType = type; + } + public Identifier getIdentifier() { + return assetId; + } + + public CharacterPatternTypes getPatternType(){ + return this.patternType; + } + + public String getCategoryString() { + return this.patternType.name().toUpperCase(); + } + + private Optional hasAddonOptional() { + if(hasAddon == null || !hasAddon) + return Optional.empty(); + return Optional.of(true); + } + public Boolean hasAddonRawValue() { + return hasAddon; + } + + + static { + PACKET_CODEC = PacketCodec.tuple( + Identifier.PACKET_CODEC, + CharacterTexturePattern::getIdentifier, + PacketCodecs.STRING, + CharacterTexturePattern::getCategoryString, + PacketCodecs.BOOLEAN, + CharacterTexturePattern::hasAddonRawValue, + CharacterTexturePattern::new); + ENTRY_CODEC = RegistryElementCodec.of(DynamicRegistriesME.SKIN_PATTERN, CODEC); + ENTRY_PACKET_CODEC = PacketCodecs.registryEntry(DynamicRegistriesME.SKIN_PATTERN, PACKET_CODEC); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/ClothingPreset.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/ClothingPreset.java new file mode 100644 index 0000000000..aaaa8cee75 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/ClothingPreset.java @@ -0,0 +1,74 @@ +package net.sevenstars.middleearth.resources.datas.texture_presets; + +import net.minecraft.nbt.NbtCompound; +import net.minecraft.nbt.NbtElement; +import net.minecraft.nbt.NbtList; +import net.sevenstars.api.dtos.WeightedIdentifier; +import net.sevenstars.api.dtos.WeightedPool; + +public class ClothingPreset { + public WeightedPool bases; + public WeightedPool overs; + public WeightedPool extras; + + public ClothingPreset(WeightedPool bases, WeightedPool overs, WeightedPool extras) { + this.bases = bases; + this.overs = overs; + this.extras = extras; + } + + public ClothingPreset(NbtCompound source) { + bases = new WeightedPool<>(); + overs = new WeightedPool<>(); + extras = new WeightedPool<>(); + + if(source.getList("bases").isPresent()){ + NbtList baseList = source.getList("bases").get(); + baseList.forEach( x -> { + bases.add(new WeightedIdentifier(x)); + }); + } + + if(source.getList("overs").isPresent()){ + NbtList overList = source.getList("overs").get(); + overList.forEach( x -> { + overs.add(new WeightedIdentifier(x)); + }); + } + + if(source.getList("extras").isPresent()){ + NbtList extraList = source.getList("extras").get(); + extraList.forEach( x -> { + extras.add(new WeightedIdentifier(x)); + }); + } + } + + public NbtElement getNbt(NbtElement newNbt) { + if(bases != null){ + var baseList = new NbtList(); + for(int i = 0; i < bases.size(); i++){ + NbtElement element = bases.get(i).getNbt(); + baseList.add(i, element); + } + newNbt.asCompound().get().put("bases", baseList); + } + if(overs != null){ + var overList = new NbtList(); + for(int i = 0; i < overs.size(); i++){ + NbtElement element = overs.get(i).getNbt(); + overList.add(i, element); + } + newNbt.asCompound().get().put("overs", overList); + } + if(extras != null){ + var extraList = new NbtList(); + for(int i = 0; i < extras.size(); i++){ + NbtElement element = extras.get(i).getNbt(); + extraList.add(i, element); + } + newNbt.asCompound().get().put("extras", extraList); + } + return newNbt; + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/ClothingSelection.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/ClothingSelection.java new file mode 100644 index 0000000000..bfa8bd2222 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/ClothingSelection.java @@ -0,0 +1,7 @@ +package net.sevenstars.middleearth.resources.datas.texture_presets; + +import net.minecraft.util.Identifier; + +public record ClothingSelection(Identifier base, Identifier over, Identifier extra) { + +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/TexturePreset.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/TexturePreset.java new file mode 100644 index 0000000000..f481259f55 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/TexturePreset.java @@ -0,0 +1,357 @@ +package net.sevenstars.middleearth.resources.datas.texture_presets; + +import net.minecraft.nbt.NbtCompound; +import net.minecraft.nbt.NbtElement; +import net.minecraft.nbt.NbtList; +import net.minecraft.util.Identifier; +import net.sevenstars.api.dtos.WeightedIdentifier; +import net.sevenstars.api.dtos.WeightedPool; +import net.sevenstars.middleearth.resources.datas.common.CharacterMaterialTypes; +import net.sevenstars.middleearth.resources.datas.common.CharacterPatternTypes; + +import java.util.ArrayList; +import java.util.List; + +public class TexturePreset { + public final static WeightedIdentifier EMPTY_VALUE_KEY = new WeightedIdentifier(Identifier.of("empty")); + + public final static String PATTERNS = "patterns"; + public final static String MATERIALS = "materials"; + public final static String IS_EMISSIVE = "is_emissive"; + public final static String CLOTHES = "CLOTHES"; + + public WeightedPool bodyPatterns; + public WeightedPool headPatterns; + public WeightedPool feetPatterns; + public WeightedPool scarPatterns; + public WeightedPool earPatterns; + public WeightedPool nosePatterns; + public WeightedPool eyePatterns; + public WeightedPool hairPatterns; + public WeightedPool eyebrowPatterns; + public WeightedPool beardPatterns; + public WeightedPool skinMaterials; + public WeightedPool eyeMaterials; + public WeightedPool hairMaterials; + + public WeightedPool characterClothePresets; + + public boolean haveEmissiveEyes; + + public TexturePreset(){ + bodyPatterns = new WeightedPool<>(); + headPatterns = new WeightedPool<>(); + scarPatterns = new WeightedPool<>(); + earPatterns = new WeightedPool<>(); + nosePatterns = new WeightedPool<>(); + feetPatterns = new WeightedPool<>(); + skinMaterials = new WeightedPool<>(); + + eyePatterns = new WeightedPool<>(); + eyeMaterials = new WeightedPool<>(); + + hairPatterns = new WeightedPool<>(); + eyebrowPatterns = new WeightedPool<>(); + beardPatterns = new WeightedPool<>(); + hairMaterials = new WeightedPool<>(); + + characterClothePresets = new WeightedPool<>(); + } + + public TexturePreset(NbtCompound compound){ + this(); + + characterClothePresets = new WeightedPool<>(); + + fetchMaterials(compound, CharacterMaterialTypes.SKIN); + fetchMaterials(compound, CharacterMaterialTypes.EYE); + fetchMaterials(compound, CharacterMaterialTypes.HAIR); + + fetchPatterns(compound, CharacterPatternTypes.FEET); + fetchPatterns(compound, CharacterPatternTypes.BODY); + fetchPatterns(compound, CharacterPatternTypes.HEAD); + fetchPatterns(compound, CharacterPatternTypes.SCAR); + fetchPatterns(compound, CharacterPatternTypes.EAR); + fetchPatterns(compound, CharacterPatternTypes.NOSE); + + fetchPatterns(compound, CharacterPatternTypes.EYE); + + fetchPatterns(compound, CharacterPatternTypes.HAIR); + fetchPatterns(compound, CharacterPatternTypes.EYEBROW); + fetchPatterns(compound, CharacterPatternTypes.BEARD); + + fetchClothes(compound); + } + + public NbtCompound getNbt(NbtCompound nbt) { + + if(skinMaterials.isFilled()){ + NbtCompound compound = new NbtCompound(); + compound.put(MATERIALS, createTextureElementList(skinMaterials)); + nbt.put(CharacterMaterialTypes.SKIN.name(), compound); + } + if(bodyPatterns.isFilled()){ + NbtCompound compound = new NbtCompound(); + compound.put(PATTERNS, createTextureElementList(bodyPatterns)); + nbt.put(CharacterPatternTypes.BODY.name(), compound); + } + if(feetPatterns.isFilled()){ + NbtCompound compound = new NbtCompound(); + compound.put(PATTERNS, createTextureElementList(feetPatterns)); + nbt.put(CharacterPatternTypes.FEET.name(), compound); + } + if(headPatterns.isFilled()){ + NbtCompound compound = new NbtCompound(); + compound.put(PATTERNS, createTextureElementList(headPatterns)); + nbt.put(CharacterPatternTypes.HEAD.name(), compound); + } + if(scarPatterns.isFilled()){ + NbtCompound compound = new NbtCompound(); + compound.put(PATTERNS, createTextureElementList(scarPatterns)); + nbt.put(CharacterPatternTypes.SCAR.name(), compound); + } + if(earPatterns.isFilled()){ + NbtCompound compound = new NbtCompound(); + compound.put(PATTERNS, createTextureElementList(earPatterns)); + nbt.put(CharacterPatternTypes.EAR.name(), compound); + } + if(nosePatterns.isFilled()){ + NbtCompound compound = new NbtCompound(); + compound.put(PATTERNS, createTextureElementList(nosePatterns)); + nbt.put(CharacterPatternTypes.NOSE.name(), compound); + } + if(eyePatterns.isFilled() || eyeMaterials.isFilled()){ + NbtCompound compound = new NbtCompound(); + + compound.put(PATTERNS, createTextureElementList(eyePatterns)); + compound.put(MATERIALS, createTextureElementList(eyeMaterials)); + + if(haveEmissiveEyes) + compound.putBoolean(IS_EMISSIVE, true); + + nbt.put(CharacterPatternTypes.EYE.name(), compound); + } + if(hairPatterns.isFilled() || hairMaterials.isFilled()){ + NbtCompound compound = new NbtCompound(); + + compound.put(PATTERNS, createTextureElementList(hairPatterns)); + compound.put(MATERIALS, createTextureElementList(hairMaterials)); + + nbt.put(CharacterMaterialTypes.HAIR.name(), compound); + } + if(eyebrowPatterns.isFilled()){ + NbtCompound compound = new NbtCompound(); + compound.put(PATTERNS, createTextureElementList(eyebrowPatterns)); + nbt.put(CharacterPatternTypes.EYEBROW.name(), compound); + } + if(beardPatterns.isFilled()){ + NbtCompound compound = new NbtCompound(); + compound.put(PATTERNS, createTextureElementList(beardPatterns)); + nbt.put(CharacterPatternTypes.BEARD.name(), compound); + } + if(characterClothePresets.isFilled()){ + var list = new NbtList(); + for(int i = 0; i < this.characterClothePresets.size(); i++){ + list.add(i, characterClothePresets.get(i).getNbt()); + } + nbt.put(CLOTHES, list); + } + return nbt; + } + + + private NbtList createTextureElementList(WeightedPool values){ + return values.getNbt(); + } + + private void fetchMaterials(NbtCompound compound, CharacterMaterialTypes type){ + if(compound.contains(type.name())){ + NbtCompound value = compound.getCompound(type.name()).get(); + + if(value.contains(MATERIALS)){ + var materials = value.get(MATERIALS); + if(materials != null){ + NbtList nbtList = materials.asNbtList().get(); + + List fetchedValues = nbtList.stream().toList(); + List weightedList = new ArrayList<>(); + + for(var fetchedValue : fetchedValues){ + weightedList.add(new WeightedIdentifier(fetchedValue)); + } + + switch (type){ + case SKIN -> skinMaterials.addAll(weightedList); + case EYE -> eyeMaterials.addAll(weightedList); + case HAIR -> hairMaterials.addAll(weightedList); + } + } + } + } + } + + + private void fetchPatterns(NbtCompound compound, CharacterPatternTypes type){ + if(compound.contains(type.name())){ + NbtCompound value = compound.getCompound(type.name()).get(); + if(value.contains(PATTERNS)){ + var patterns = value.get(PATTERNS); + if(patterns != null){ + NbtList nbtList = patterns.asNbtList().get(); + + List fetchedValues = nbtList.stream().toList(); + List weightedIdentifiers = new ArrayList<>(); + + for(var fetchedValue : fetchedValues){ + weightedIdentifiers.add(new WeightedIdentifier(fetchedValue)); + } + + switch (type){ + case BODY -> bodyPatterns .addAll(weightedIdentifiers); + case HEAD -> headPatterns .addAll(weightedIdentifiers); + case FEET -> feetPatterns .addAll(weightedIdentifiers); + case SCAR -> scarPatterns .addAll(weightedIdentifiers); + case EAR -> earPatterns .addAll(weightedIdentifiers); + case NOSE -> nosePatterns .addAll(weightedIdentifiers); + case EYE -> eyePatterns .addAll(weightedIdentifiers); + case HAIR -> hairPatterns .addAll(weightedIdentifiers); + case EYEBROW -> eyebrowPatterns .addAll(weightedIdentifiers); + case BEARD -> beardPatterns .addAll(weightedIdentifiers); + } + } + } + + if(type == CharacterPatternTypes.EYE && value.contains(IS_EMISSIVE)){ + this.haveEmissiveEyes = value.getBoolean(IS_EMISSIVE).get(); + } + } + } + + private void fetchClothes(NbtCompound compound){ + if(compound.contains(CLOTHES)){ + if(compound.getList(CLOTHES).isPresent()){ + NbtList listClothePresets = compound.getList(CLOTHES).get(); + + listClothePresets.forEach(x -> { + if(x.asCompound().isPresent()){ + this.characterClothePresets.add(new WeightedClothingPresetHolder(x.asCompound().get())); + } + }); + } + } + } + + public void withEmissiveEyes(boolean value){ + this.haveEmissiveEyes = value; + } + + public void withClothes(List characterClothePresets){ + if(characterClothePresets != null){ + this.characterClothePresets.addAll(characterClothePresets); + } + } + + public void clearClothes(){ + this.characterClothePresets.clear(); + } + + public void withPatterns(CharacterPatternTypes type, List patterns){ + if(patterns != null) + patterns.forEach(x -> { + if(x == null){ + addToPattern(type, EMPTY_VALUE_KEY); + } else { + addToPattern(type, x); + } + }); + } + + public void withPatterns(CharacterPatternTypes type, WeightedPool patterns){ + withPatterns(type, patterns.elements); + } + + public void clearPatterns(CharacterPatternTypes type) { + clearAllPatterns(type); + } + public void withMaterials(CharacterMaterialTypes type, List materials){ + materials.forEach(x -> addToMaterial(type, x)); + } + public void withMaterials(CharacterMaterialTypes type, WeightedPool materials){ + this.withMaterials(type, materials.elements); + } + + public void clearMaterials(CharacterMaterialTypes type) { + clearAllMaterials(type); + } + + public void addToPattern(CharacterPatternTypes patternType, WeightedIdentifier value) { + switch (patternType){ + case BODY -> bodyPatterns .add(value); + case HEAD -> headPatterns .add(value); + case FEET -> feetPatterns .add(value); + case SCAR -> scarPatterns .add(value); + case EAR -> earPatterns .add(value); + case NOSE -> nosePatterns .add(value); + case EYE -> eyePatterns .add(value); + case HAIR -> hairPatterns .add(value); + case EYEBROW -> eyebrowPatterns .add(value); + case BEARD -> beardPatterns .add(value); + }; + } + private void clearAllPatterns(CharacterPatternTypes patternType) { + switch (patternType){ + case BODY -> bodyPatterns .clear(); + case HEAD -> headPatterns .clear(); + case FEET -> feetPatterns .clear(); + case SCAR -> scarPatterns .clear(); + case EAR -> earPatterns .clear(); + case NOSE -> nosePatterns .clear(); + case EYE -> eyePatterns .clear(); + case HAIR -> hairPatterns .clear(); + case EYEBROW -> eyebrowPatterns .clear(); + case BEARD -> beardPatterns .clear(); + }; + } + + public void addToMaterial(CharacterMaterialTypes materialType, WeightedIdentifier value) { + switch (materialType){ + case SKIN -> skinMaterials.add(value); + case EYE -> eyeMaterials.add(value); + case HAIR -> hairMaterials.add(value); + }; + } + private void clearAllMaterials(CharacterMaterialTypes materialType) { + switch (materialType){ + case SKIN -> skinMaterials.clear(); + case EYE -> eyeMaterials.clear(); + case HAIR -> hairMaterials.clear(); + }; + } + + public WeightedPool getPatterns(CharacterPatternTypes patternTypes) { + return switch (patternTypes){ + case BODY -> bodyPatterns; + case HEAD -> headPatterns; + case FEET -> feetPatterns; + case SCAR -> scarPatterns; + case EAR -> earPatterns; + case NOSE -> nosePatterns; + case EYE -> eyePatterns; + case HAIR -> hairPatterns; + case EYEBROW -> eyebrowPatterns; + case BEARD -> beardPatterns; + }; + } + public WeightedPool getMaterials(CharacterMaterialTypes materialType) { + return switch (materialType) { + case SKIN -> skinMaterials; + case EYE -> eyeMaterials; + case HAIR -> hairMaterials; + }; + } + + public Boolean haveEmissiveEyes() { + return haveEmissiveEyes; + } + +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/TexturePresetDataPool.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/TexturePresetDataPool.java new file mode 100644 index 0000000000..91fe5230cf --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/TexturePresetDataPool.java @@ -0,0 +1,166 @@ +package net.sevenstars.middleearth.resources.datas.texture_presets; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.nbt.NbtCompound; +import net.minecraft.nbt.NbtList; +import net.minecraft.util.Identifier; +import net.sevenstars.api.dtos.WeightedPool; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.resources.datas.common.CharacterMaterialTypes; +import net.sevenstars.middleearth.resources.datas.common.CharacterPatternTypes; +import net.sevenstars.middleearth.resources.datas.common.EntityCategories; + +import java.util.HashMap; +import java.util.Random; + +public class TexturePresetDataPool { + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + NbtCompound.CODEC.fieldOf("categories").forGetter(TexturePresetDataPool::getNbt) + ).apply(instance, TexturePresetDataPool::new)); + + HashMap> presetsByCategory; + + public TexturePresetDataPool(NbtCompound categories) { + if(categories == null) return; + presetsByCategory = new HashMap<>(); + + for(EntityCategories category : EntityCategories.values()){ + var optList = categories.getList(category.name()); + if(optList.isEmpty()) continue;; + NbtList nbtListPresets = optList.get(); + WeightedPool dataPresetList = new WeightedPool<>(); + for(int i = 0; i < nbtListPresets.size(); i++){ + WeightedTexturePresetHolder fetchedPreset = new WeightedTexturePresetHolder(nbtListPresets.getCompound(i).get()); + dataPresetList.add(fetchedPreset); + } + presetsByCategory.put(category, dataPresetList); + } + } + + public TexturePresetDataPool(HashMap> sourceDatas) { + presetsByCategory = sourceDatas; + } + + public static Identifier buildId(Identifier pattern, Identifier material) { + if(pattern == null || material == null) + return null; + return MiddleEarth.of(pattern.getPath() + "_" + material.getPath()); + } + + public static Identifier buildAddonId(Identifier pattern, Identifier material) { + return MiddleEarth.of(pattern.getPath() + "_addon_" + material.getPath()); + } + + public static ClothingSelection getClothing(Identity textureIdentity) { + return textureIdentity.preset.getClothingData(); + } + + + public NbtCompound getNbt() { + NbtCompound newNbt = new NbtCompound(); + for(EntityCategories category : presetsByCategory.keySet()){ + WeightedPool presets = presetsByCategory.get(category); + if(presets != null && !presets.isEmpty()){ + NbtList newNbtList = new NbtList(); + for (WeightedTexturePresetHolder preset : presets.elements) { + newNbtList.add(preset.getNbt()); + } + newNbt.put(category.name(), newNbtList); + } + } + return newNbt; + } + + public static Identifier getRawMaterial(Identity identity, CharacterMaterialTypes materialType) { + var weightedItem = identity.preset.getMaterials(materialType).getRandom(); + if(weightedItem == null) + return null; + return weightedItem.getItem(); + } + + public static Identifier getRawPattern(Identity identity, CharacterPatternTypes patternType) { + var weightedItem = identity.preset.getPatterns(patternType).getRandom(); + if(weightedItem == null) + return null; + if(weightedItem.isSame(TexturePreset.EMPTY_VALUE_KEY.getItem())) + return null; + return weightedItem.getItem(); + } + + public Boolean haveEmissiveEyes(Identity identity) { + return identity.preset.haveEmissiveEyes(); + } + + public EntityCategories getRandomCategory() { + Random random = new Random(); + boolean containsMale = this.presetsByCategory.containsKey(EntityCategories.MALE); + boolean containsFemale = this.presetsByCategory.containsKey(EntityCategories.FEMALE); + // Shared is not a valid sex + if(containsMale && containsFemale) + return (random.nextBoolean()) ? EntityCategories.MALE : EntityCategories.FEMALE; + else if(containsMale) + return EntityCategories.MALE; + else if(containsFemale) + return EntityCategories.FEMALE; + + return EntityCategories.MALE; + } + + public record Identity(EntityCategories category, WeightedTexturePresetHolder preset){ + public static Identity create(TexturePresetDataPool data, EntityCategories entityCategories){ + if(!data.presetsByCategory.containsKey(entityCategories)) + return null; + + WeightedPool presets = data.presetsByCategory.get(entityCategories); + presets = feedSharedToPresets(data, presets); + + Random random = new Random(); + return new Identity(entityCategories, presets.get(random.nextInt(presets.size()))); + } + + public static Identity create(TexturePresetDataPool data){ + EntityCategories entityCategories = data.getRandomCategory(); + if(!data.presetsByCategory.containsKey(entityCategories)) + return null; + + WeightedPool presets = data.presetsByCategory.get(entityCategories); + presets = feedSharedToPresets(data, presets); + + return new Identity(entityCategories, presets.getRandom()); + } + + private static WeightedPool feedSharedToPresets(TexturePresetDataPool data, WeightedPool sourcePresets) { + WeightedPool copyOfSourcePresets = new WeightedPool<>(); + + if(data.presetsByCategory.containsKey(EntityCategories.SHARED)){ + var sharedPresets = data.presetsByCategory.get(EntityCategories.SHARED); + if(sharedPresets != null){ + for (WeightedTexturePresetHolder sourcePreset : sourcePresets.elements) { + WeightedTexturePresetHolder presetToFill = sourcePreset.copy(); + for (WeightedTexturePresetHolder sharePreset : sharedPresets.elements) { + presetToFill.withMaterials(CharacterMaterialTypes.SKIN, sharePreset.getMaterials(CharacterMaterialTypes.SKIN)); + presetToFill.withPatterns(CharacterPatternTypes.BODY, sharePreset.getPatterns(CharacterPatternTypes.BODY)); + presetToFill.withPatterns(CharacterPatternTypes.HEAD, sharePreset.getPatterns(CharacterPatternTypes.HEAD)); + presetToFill.withPatterns(CharacterPatternTypes.EAR, sharePreset.getPatterns(CharacterPatternTypes.EAR)); + presetToFill.withPatterns(CharacterPatternTypes.NOSE, sharePreset.getPatterns(CharacterPatternTypes.NOSE)); + presetToFill.withPatterns(CharacterPatternTypes.SCAR, sharePreset.getPatterns(CharacterPatternTypes.SCAR)); + presetToFill.withPatterns(CharacterPatternTypes.FEET, sharePreset.getPatterns(CharacterPatternTypes.FEET)); + + presetToFill.withMaterials(CharacterMaterialTypes.HAIR, sharePreset.getMaterials(CharacterMaterialTypes.HAIR)); + presetToFill.withPatterns(CharacterPatternTypes.HAIR, sharePreset.getPatterns(CharacterPatternTypes.HAIR)); + presetToFill.withPatterns(CharacterPatternTypes.BEARD, sharePreset.getPatterns(CharacterPatternTypes.BEARD)); + presetToFill.withPatterns(CharacterPatternTypes.EYEBROW, sharePreset.getPatterns(CharacterPatternTypes.EYEBROW)); + presetToFill.withEmissiveEyes(sharePreset.haveEmissiveEyes()); + + presetToFill.withMaterials(CharacterMaterialTypes.EYE, sharePreset.getMaterials(CharacterMaterialTypes.EYE)); + presetToFill.withPatterns(CharacterPatternTypes.EYE, sharePreset.getPatterns(CharacterPatternTypes.EYE)); + } + copyOfSourcePresets.add(presetToFill); + } + } + } + return copyOfSourcePresets; + } + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/WeightedClothingPresetHolder.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/WeightedClothingPresetHolder.java new file mode 100644 index 0000000000..10ce49c8bf --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/WeightedClothingPresetHolder.java @@ -0,0 +1,72 @@ +package net.sevenstars.middleearth.resources.datas.texture_presets; + +import net.minecraft.nbt.NbtCompound; +import net.minecraft.nbt.NbtElement; +import net.minecraft.util.Identifier; +import net.sevenstars.api.dtos.WeightedIdentifier; +import net.sevenstars.api.dtos.WeightedItem; +import net.sevenstars.api.dtos.WeightedPool; + +import java.util.List; + +public class WeightedClothingPresetHolder extends WeightedItem { + public WeightedClothingPresetHolder(List bases){ + this(bases, null, null, 1); + } + public WeightedClothingPresetHolder(List bases, List overs){ + this(bases, overs, null, 1); + } + public WeightedClothingPresetHolder(List bases, List overs, int weight){ + this(bases, overs, null, weight); + } + public WeightedClothingPresetHolder(List bases, List overs, List extras){ + this(bases, overs, extras, 1); + } + public WeightedClothingPresetHolder(List bases, List overs, List extras, int weight){ + this.item = new ClothingPreset(new WeightedPool<>(bases), new WeightedPool<>(overs), new WeightedPool<>(extras)); + this.weight = weight; + } + public WeightedClothingPresetHolder(NbtCompound source){ + super(source); + this.item = new ClothingPreset(source); + } + + public Identifier getRandomBase(){ + WeightedIdentifier data = item.bases.getRandom(); + if(data == null) + return null; + return data.getItem(); + } + + public Identifier getRandomOver(){ + WeightedIdentifier data = item.overs.getRandom(); + if(data == null) + return null; + return data.getItem(); + } + + public Identifier getRandomExtra(){ + WeightedIdentifier data = item.extras.getRandom(); + if(data == null) + return null; + return data.getItem(); + } + + public int getWeight(){ + return weight; + } + + @Override + public WeightedClothingPresetHolder withWeight(int newWeight) { + this.weight = newWeight; + return this; + } + + @Override + public NbtElement getNbt(){ + NbtElement newNbt = super.getNbt(); + if(newNbt == null) + newNbt = new NbtCompound(); + return this.item.getNbt(newNbt); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/WeightedTexturePresetHolder.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/WeightedTexturePresetHolder.java new file mode 100644 index 0000000000..4e1ec92262 --- /dev/null +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/datas/texture_presets/WeightedTexturePresetHolder.java @@ -0,0 +1,159 @@ +package net.sevenstars.middleearth.resources.datas.texture_presets; + +import net.minecraft.nbt.NbtCompound; +import net.minecraft.nbt.NbtElement; +import net.minecraft.util.Identifier; +import net.sevenstars.api.dtos.WeightedItem; +import net.sevenstars.api.dtos.WeightedPool; +import net.sevenstars.middleearth.MiddleEarth; +import net.sevenstars.middleearth.resources.datas.common.CharacterMaterialTypes; +import net.sevenstars.middleearth.resources.datas.common.CharacterPatternTypes; +import net.sevenstars.api.dtos.WeightedIdentifier; + +import java.util.*; + +public class WeightedTexturePresetHolder extends WeightedItem { + public WeightedTexturePresetHolder(){ + this.weight = 1; + this.item = new TexturePreset(); + } + + @Override + public WeightedTexturePresetHolder withWeight(int newWeight) { + this.weight = newWeight; + return this; + } + + + public WeightedTexturePresetHolder(NbtCompound compound) { + super(compound); + + this.item = new TexturePreset(compound); + } + + @Override + public NbtElement getNbt(){ + NbtElement nbt = super.getNbt(); + if(nbt == null){ + nbt = new NbtCompound(); + } + return item.getNbt(nbt.asCompound().get()); + } + + public WeightedTexturePresetHolder withEmissiveEyes(boolean value){ + this.item.withEmissiveEyes(value); + return this; + } + + public WeightedTexturePresetHolder withClothes(List characterClothePresets){ + this.item.withClothes(characterClothePresets); + return this; + } + + public WeightedTexturePresetHolder clearClothes(){ + this.item.clearClothes(); + return this; + } + + public WeightedTexturePresetHolder withPatterns(CharacterPatternTypes type, List patterns){ + this.item.withPatterns(type, patterns); + return this; + } + + public WeightedTexturePresetHolder withPatterns(CharacterPatternTypes type, WeightedPool patterns){ + this.item.withPatterns(type, patterns); + return this; + } + + public WeightedTexturePresetHolder clearPatterns(CharacterPatternTypes type) { + this.item.clearPatterns(type); + return this; + } + public WeightedTexturePresetHolder withMaterials(CharacterMaterialTypes type, List materials){ + this.item.withMaterials(type, materials); + return this; + } + public WeightedTexturePresetHolder withMaterials(CharacterMaterialTypes type, WeightedPool materials){ + this.item.withMaterials(type, materials); + return this; + } + + public WeightedTexturePresetHolder clearMaterials(CharacterMaterialTypes type) { + this.item.clearMaterials(type); + return this; + } + + public void addToPattern(CharacterPatternTypes patternType, WeightedIdentifier value) { + this.item.addToPattern(patternType, value); + } + private void clearAllPatterns(CharacterPatternTypes patternType) { + this.item.clearPatterns(patternType); + } + + public void addToMaterial(CharacterMaterialTypes materialType, WeightedIdentifier value) { + this.item.addToMaterial(materialType, value); + + } + private void clearAllMaterials(CharacterMaterialTypes materialType) { + this.item.clearMaterials(materialType); + } + + public WeightedPool getPatterns(CharacterPatternTypes patternTypes) { + return this.item.getPatterns(patternTypes); + } + public WeightedPool getMaterials(CharacterMaterialTypes materialType) { + return this.item.getMaterials(materialType); + } + + public Boolean haveEmissiveEyes() { + return this.item.haveEmissiveEyes(); + } + + public WeightedTexturePresetHolder copy() { + var copiedNpcTextureDataPreset = new WeightedTexturePresetHolder(); + for(WeightedIdentifier value : getMaterials(CharacterMaterialTypes.SKIN).elements) + copiedNpcTextureDataPreset.addToMaterial(CharacterMaterialTypes.SKIN, value); + for(WeightedIdentifier value : getPatterns(CharacterPatternTypes.HEAD).elements) + copiedNpcTextureDataPreset.addToPattern(CharacterPatternTypes.HEAD, value); + for(WeightedIdentifier value : getPatterns(CharacterPatternTypes.BODY).elements) + copiedNpcTextureDataPreset.addToPattern(CharacterPatternTypes.BODY, value); + for(WeightedIdentifier value : getPatterns(CharacterPatternTypes.FEET).elements) + copiedNpcTextureDataPreset.addToPattern(CharacterPatternTypes.FEET, value); + for(WeightedIdentifier value : getPatterns(CharacterPatternTypes.NOSE).elements) + copiedNpcTextureDataPreset.addToPattern(CharacterPatternTypes.NOSE, value); + for(WeightedIdentifier value : getPatterns(CharacterPatternTypes.EAR).elements) + copiedNpcTextureDataPreset.addToPattern(CharacterPatternTypes.EAR, value); + + for(WeightedIdentifier value : getMaterials(CharacterMaterialTypes.EYE).elements) + copiedNpcTextureDataPreset.addToMaterial(CharacterMaterialTypes.EYE, value); + for(WeightedIdentifier value : getPatterns(CharacterPatternTypes.EYE).elements) + copiedNpcTextureDataPreset.addToPattern(CharacterPatternTypes.EYE, value); + + for(WeightedIdentifier value : getMaterials(CharacterMaterialTypes.HAIR).elements) + copiedNpcTextureDataPreset.addToMaterial(CharacterMaterialTypes.HAIR, value); + for(WeightedIdentifier value : getPatterns(CharacterPatternTypes.EYEBROW).elements) + copiedNpcTextureDataPreset.addToPattern(CharacterPatternTypes.EYEBROW, value); + for(WeightedIdentifier value : getPatterns(CharacterPatternTypes.HAIR).elements) + copiedNpcTextureDataPreset.addToPattern(CharacterPatternTypes.HAIR, value); + for(WeightedIdentifier value : getPatterns(CharacterPatternTypes.BEARD).elements) + copiedNpcTextureDataPreset.addToPattern(CharacterPatternTypes.BEARD, value); + + copiedNpcTextureDataPreset.item.characterClothePresets.addAll(this.item.characterClothePresets.elements); + + return copiedNpcTextureDataPreset; + } + + public ClothingSelection getClothingData() { + if(item.characterClothePresets.isEmpty()){ + MiddleEarth.LOGGER.logDebugMsg("Couldn't find clothes for " + this.getNbt()); + return new ClothingSelection(null, null, null); + } + WeightedClothingPresetHolder clothePreset = item.characterClothePresets.getRandom(); + + Identifier baseId = clothePreset.getRandomBase(); + Identifier overId = clothePreset.getRandomOver(); + Identifier extraId = clothePreset.getRandomExtra(); + + return new ClothingSelection(baseId, overId, extraId); + } +} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/persistent_datas/AffiliationData.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/persistent_datas/AffiliationData.java index 4d27c6a028..b9761cdeaf 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/persistent_datas/AffiliationData.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/persistent_datas/AffiliationData.java @@ -2,7 +2,7 @@ import net.sevenstars.middleearth.MiddleEarth; import net.sevenstars.middleearth.exceptions.FactionIdentifierException; -import net.sevenstars.middleearth.resources.datas.Disposition; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; import net.sevenstars.middleearth.resources.datas.factions.Faction; import net.sevenstars.middleearth.resources.datas.factions.FactionLookup; import net.sevenstars.middleearth.resources.datas.factions.data.SpawnData; @@ -13,19 +13,19 @@ import net.minecraft.world.World; public class AffiliationData { - public Disposition disposition; + public DispositionType dispositionType; public Identifier faction; public Identifier spawnId; public AffiliationData(String disposition, Identifier factionId, Identifier spawnId) { - this.disposition = Disposition.valueOf(disposition); + this.dispositionType = DispositionType.valueOf(disposition); this.faction = factionId; this.spawnId = spawnId; } - public Disposition getDisposition(){ - return disposition; + public DispositionType getDisposition(){ + return dispositionType; } public Vec3d getSpawnMiddleEarthCoordinate(World world){ diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/persistent_datas/PlayerDataService.java b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/persistent_datas/PlayerDataService.java index 53f1c9d4ea..3434dcd192 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/resources/persistent_datas/PlayerDataService.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/resources/persistent_datas/PlayerDataService.java @@ -11,7 +11,7 @@ import net.minecraft.world.dimension.DimensionTypes; import net.sevenstars.middleearth.exceptions.FactionIdentifierException; import net.sevenstars.middleearth.resources.StateSaverAndLoader; -import net.sevenstars.middleearth.resources.datas.Disposition; +import net.sevenstars.middleearth.resources.datas.common.DispositionType; import net.sevenstars.middleearth.resources.datas.factions.Faction; import net.sevenstars.middleearth.resources.datas.factions.FactionLookup; import net.sevenstars.middleearth.resources.datas.factions.data.SpawnData; @@ -63,9 +63,9 @@ public static boolean setNewFactionInformation(PlayerEntity player, World world, playerData.assignNewFactionInformation(factionId, spawnId); return true; } - public static Disposition getPlayerDisposition(PlayerEntity player, World world){ + public static DispositionType getPlayerDisposition(PlayerEntity player, World world){ Faction faction = getPlayerFaction(player, world); - if(faction == null) return Disposition.NEUTRAL; + if(faction == null) return DispositionType.NEUTRAL; return faction.getDisposition(); } public static Race getPlayerRace(PlayerEntity player, World world){ diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/utils/BlockTagsME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/utils/BlockTagsME.java index e1bc7dd3f7..fbcc04d825 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/utils/BlockTagsME.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/utils/BlockTagsME.java @@ -3,13 +3,12 @@ import net.minecraft.block.Block; import net.minecraft.registry.RegistryKeys; import net.minecraft.registry.tag.TagKey; -import net.minecraft.util.Identifier; import net.sevenstars.middleearth.MiddleEarth; public class BlockTagsME { public static final TagKey CURTAINS = of("curtains"); private static TagKey of(String id) { - return TagKey.of(RegistryKeys.BLOCK, Identifier.of(MiddleEarth.MOD_ID, id)); + return TagKey.of(RegistryKeys.BLOCK, MiddleEarth.of(id)); } } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/utils/IdentifierUtil.java b/middle-earth/src/main/java/net/sevenstars/middleearth/utils/IdentifierUtil.java deleted file mode 100644 index 29b349c70a..0000000000 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/utils/IdentifierUtil.java +++ /dev/null @@ -1,18 +0,0 @@ -package net.sevenstars.middleearth.utils; - -import net.sevenstars.middleearth.MiddleEarth; -import net.minecraft.util.Identifier; - -public class IdentifierUtil { - public static Identifier getIdentifierFromString(String id){ - if(id.contains(":") && id.split(":").length == 2){ - return Identifier.of(id.split(":")[0], id.split(":")[1]); - } else { - return Identifier.of(MiddleEarth.MOD_ID, id); - } - } - - public static Identifier create(String name) { - return Identifier.of(MiddleEarth.MOD_ID, name); - } -} diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/utils/ItemTagsME.java b/middle-earth/src/main/java/net/sevenstars/middleearth/utils/ItemTagsME.java index 209eb445a9..0d195998c9 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/utils/ItemTagsME.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/utils/ItemTagsME.java @@ -3,38 +3,39 @@ import net.minecraft.item.Item; import net.minecraft.registry.RegistryKeys; import net.minecraft.registry.tag.TagKey; +import net.sevenstars.middleearth.MiddleEarth; public class ItemTagsME { //TODO actually gen the tags - public static TagKey REPAIRS_STRAW_ARMOR = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("repairs_straw_armor")); - public static TagKey REPAIRS_BONE_ARMOR = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("repairs_bone_armor")); - public static TagKey REPAIRS_WOOL_ARMOR = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("repairs_wool_armor")); - public static TagKey REPAIRS_FUR_ARMOR = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("repairs_fur_armor")); - public static TagKey REPAIRS_FABRIC_ARMOR = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("repairs_fabric_armor")); - public static TagKey REPAIRS_BRONZE_ARMOR = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("repairs_bronze_armor")); - public static TagKey REPAIRS_CRUDE_ARMOR = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("repairs_crude_armor")); - public static TagKey REPAIRS_STEEL_ARMOR = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("repairs_steel_armor")); - public static TagKey REPAIRS_KHAZAD_STEEL_ARMOR = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("repairs_khazad_steel_armor")); - public static TagKey REPAIRS_EDHEL_STEEL_ARMOR = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("repairs_edhel_steel_armor")); - public static TagKey REPAIRS_BURZUM_STEEL_ARMOR = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("repairs_burzum_steel_armor")); + public static TagKey REPAIRS_STRAW_ARMOR = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("repairs_straw_armor")); + public static TagKey REPAIRS_WOOL_ARMOR = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("repairs_wool_armor")); + public static TagKey REPAIRS_BONE_ARMOR = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("repairs_bone_armor")); + public static TagKey REPAIRS_FUR_ARMOR = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("repairs_fur_armor")); + public static TagKey REPAIRS_FABRIC_ARMOR = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("repairs_fabric_armor")); + public static TagKey REPAIRS_BRONZE_ARMOR = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("repairs_bronze_armor")); + public static TagKey REPAIRS_CRUDE_ARMOR = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("repairs_crude_armor")); + public static TagKey REPAIRS_STEEL_ARMOR = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("repairs_steel_armor")); + public static TagKey REPAIRS_KHAZAD_STEEL_ARMOR = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("repairs_khazad_steel_armor")); + public static TagKey REPAIRS_EDHEL_STEEL_ARMOR = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("repairs_edhel_steel_armor")); + public static TagKey REPAIRS_BURZUM_STEEL_ARMOR = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("repairs_burzum_steel_armor")); - public static TagKey BONE_TOOL_MATERIALS = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("bone_tool_materials")); - public static TagKey COPPER_TOOL_MATERIALS = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("copper_tool_materials")); - public static TagKey BRONZE_TOOL_MATERIALS = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("bronze_tool_materials")); - public static TagKey CRUDE_TOOL_MATERIALS = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("crude_tool_materials")); - public static TagKey STEEL_TOOL_MATERIALS = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("steel_tool_materials")); - public static TagKey KHAZAD_STEEL_TOOL_MATERIALS = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("khazad_steel_tool_materials")); - public static TagKey EDHEL_STEEL_TOOL_MATERIALS = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("edhel_steel_tool_materials")); - public static TagKey BURZUM_STEEL_TOOL_MATERIALS = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("burzum_steel_tool_materials")); - public static TagKey MITHRIL_TOOL_MATERIALS = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("mithril_tool_materials")); + public static TagKey BONE_TOOL_MATERIALS = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("bone_tool_materials")); + public static TagKey COPPER_TOOL_MATERIALS = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("copper_tool_materials")); + public static TagKey BRONZE_TOOL_MATERIALS = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("bronze_tool_materials")); + public static TagKey CRUDE_TOOL_MATERIALS = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("crude_tool_materials")); + public static TagKey STEEL_TOOL_MATERIALS = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("steel_tool_materials")); + public static TagKey KHAZAD_STEEL_TOOL_MATERIALS = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("khazad_steel_tool_materials")); + public static TagKey EDHEL_STEEL_TOOL_MATERIALS = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("edhel_steel_tool_materials")); + public static TagKey BURZUM_STEEL_TOOL_MATERIALS = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("burzum_steel_tool_materials")); + public static TagKey MITHRIL_TOOL_MATERIALS = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("mithril_tool_materials")); - public static TagKey SPIDER_TOOL_MATERIALS = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("spider_tool_materials")); + public static TagKey SPIDER_TOOL_MATERIALS = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("spider_tool_materials")); - public static TagKey ELK_FOOD = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("elk_food")); - public static TagKey HORSE_ARMORS = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("horse_armor")); - public static TagKey WARG_ARMORS = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("warg_armor")); + public static TagKey HORSE_ARMORS = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("horse_armor")); + public static TagKey WARG_ARMORS = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("warg_armor")); + public static TagKey ELK_FOOD = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("elk_food")); - public static TagKey CHARACTER_HELMET_SHOW_EARS = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("character_helmet_should_show_ears")); - public static TagKey CHARACTER_HELMET_HIDE_HAIR = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("character_helmet_should_hide_hair")); - public static TagKey CHARACTER_HELMET_HIDE_BEARD = TagKey.of(RegistryKeys.ITEM, IdentifierUtil.create("character_helmet_should_hide_beard")); + public static TagKey CHARACTER_HELMET_SHOW_EARS = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("character_helmet_should_show_ears")); + public static TagKey CHARACTER_HELMET_HIDE_HAIR = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("character_helmet_should_hide_hair")); + public static TagKey CHARACTER_HELMET_HIDE_BEARD = TagKey.of(RegistryKeys.ITEM, MiddleEarth.of("character_helmet_should_hide_beard")); } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/utils/PlayerUtil.java b/middle-earth/src/main/java/net/sevenstars/middleearth/utils/PlayerUtil.java index f0069fc4ae..679c01cf29 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/utils/PlayerUtil.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/utils/PlayerUtil.java @@ -12,7 +12,7 @@ import net.sevenstars.middleearth.MiddleEarth; import net.sevenstars.middleearth.exceptions.FactionIdentifierException; import net.sevenstars.middleearth.resources.StateSaverAndLoader; -import net.sevenstars.middleearth.resources.datas.RaceType; +import net.sevenstars.middleearth.resources.datas.common.RaceType; import net.sevenstars.middleearth.resources.datas.factions.Faction; import net.sevenstars.middleearth.resources.datas.factions.FactionLookup; import net.sevenstars.middleearth.resources.datas.factions.data.SpawnData; diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/world/biomes/caves/ModCaveBiomeFeatures.java b/middle-earth/src/main/java/net/sevenstars/middleearth/world/biomes/caves/ModCaveBiomeFeatures.java index 562ba5ae9c..7d73c0c75f 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/world/biomes/caves/ModCaveBiomeFeatures.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/world/biomes/caves/ModCaveBiomeFeatures.java @@ -1,6 +1,6 @@ package net.sevenstars.middleearth.world.biomes.caves; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.sevenstars.middleearth.world.features.underground.CavesPlacedFeatures; import net.minecraft.entity.EntityType; import net.minecraft.entity.SpawnGroup; @@ -39,16 +39,33 @@ public static void addFrogs(SpawnSettings.Builder spawnSettings) { public static void addSnails(SpawnSettings.Builder spawnSettings) { spawnSettings.spawn(SpawnGroup.CREATURE, 5, new SpawnSettings.SpawnEntry(EntitiesWT.SNAIL, 1, 3)); } - public static void addWildGoblins(SpawnSettings.Builder spawnSettings) { - //spawnSettings.spawn(SpawnGroup.MONSTER, new SpawnSettings.SpawnEntry(ModEntities.WILD_GOBLIN, 5, 1, 2)); + + public static void addParseWildGoblins(SpawnSettings.Builder spawnSettings) { + spawnSettings.spawn(SpawnGroup.MONSTER, 2, new SpawnSettings.SpawnEntry(EntitiesME.NPC, 1, 3)) + .spawnCost(EntitiesME.NPC, 0.7, 0.3); + } + + public static void addGroupWildGoblins(SpawnSettings.Builder spawnSettings) { + spawnSettings.spawn(SpawnGroup.MONSTER, 2, new SpawnSettings.SpawnEntry(EntitiesME.NPC, 3, 5)) + .spawnCost(EntitiesME.NPC, 0.7, 0.3); } + public static void addSpiders(SpawnSettings.Builder spawnSettings) { - spawnSettings.spawn(SpawnGroup.AMBIENT, 2, new SpawnSettings.SpawnEntry(ModEntities.SHELOBITE_SCUTTLER, 1, 2)) - .spawnCost(ModEntities.SHELOBITE_SCUTTLER, 0.7, 0.3); + spawnSettings.spawn(SpawnGroup.MONSTER, 2, new SpawnSettings.SpawnEntry(EntitiesME.SHELOBITE_SCUTTLER, 1, 2)) + .spawnCost(EntitiesME.SHELOBITE_SCUTTLER, 0.7, 0.1); + } + + public static void addCaveTroll(SpawnSettings.Builder spawnSettings) { + spawnSettings.spawn(SpawnGroup.MONSTER, 1, new SpawnSettings.SpawnEntry(EntitiesME.CAVE_TROLL, 1, 1)) + .spawnCost(EntitiesME.CAVE_TROLL, 0.7, 1); + } + public static void addSpiderLarvas(SpawnSettings.Builder spawnSettings) { + spawnSettings.spawn(SpawnGroup.MONSTER, 2, new SpawnSettings.SpawnEntry(EntitiesME.SHELOBITE_LARVA, 2, 4)) + .spawnCost(EntitiesME.SHELOBITE_LARVA, 0.7, 0.3); } public static void addSnowTrolls(SpawnSettings.Builder spawnSettings) { - spawnSettings.spawn(SpawnGroup.MONSTER, 4, new SpawnSettings.SpawnEntry(ModEntities.SNOW_TROLL, 1, 2)); + spawnSettings.spawn(SpawnGroup.MONSTER, 4, new SpawnSettings.SpawnEntry(EntitiesME.SNOW_TROLL, 1, 2)); } } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/world/biomes/caves/ModCaveBiomes.java b/middle-earth/src/main/java/net/sevenstars/middleearth/world/biomes/caves/ModCaveBiomes.java index 2026d06360..2eca025c6f 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/world/biomes/caves/ModCaveBiomes.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/world/biomes/caves/ModCaveBiomes.java @@ -140,7 +140,7 @@ public static Biome createBasicCave(Registerable context, BiomeColorsDTO addBasicFeatures(generationSettings, true); - return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true); + return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true, false); } public static Biome createMountainCave(Registerable context, BiomeColorsDTO biomeColors) { @@ -153,7 +153,7 @@ public static Biome createMountainCave(Registerable context, BiomeColorsD addBasicFeatures(generationSettings, true); - return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true); + return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true, true); } public static Biome createLushCave(Registerable context, BiomeColorsDTO biomeColors) { @@ -179,7 +179,7 @@ public static Biome createLushCave(Registerable context, BiomeColorsDTO b generationSettings.feature(GenerationStep.Feature.VEGETAL_DECORATION, CavesPlacedFeatures.SPORE_BLOSSOM); generationSettings.feature(GenerationStep.Feature.VEGETAL_DECORATION, CavesPlacedFeatures.CLASSIC_VINES_CAVE); - return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true); + return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true, false); } public static Biome createDripstoneCave(Registerable context, BiomeColorsDTO biomeColors) { @@ -192,7 +192,7 @@ public static Biome createDripstoneCave(Registerable context, BiomeColors undergroundOres.add(MiscPlacedFeatures.DISK_GRAVEL); addBasicFeatures(generationSettings, true); - return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true); + return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true, false); } public static Biome createDolomiteCave(Registerable context, BiomeColorsDTO biomeColors) { @@ -207,7 +207,7 @@ public static Biome createDolomiteCave(Registerable context, BiomeColorsD undergroundOres.add(MiscPlacedFeatures.DISK_GRAVEL); addBasicFeatures(generationSettings, true); - return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true); + return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true, false); } public static Biome createGalonnCave(Registerable context, BiomeColorsDTO biomeColors) { @@ -222,7 +222,7 @@ public static Biome createGalonnCave(Registerable context, BiomeColorsDTO undergroundOres.add(MiscPlacedFeatures.DISK_GRAVEL); addBasicFeatures(generationSettings, true); - return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true); + return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true, false); } public static Biome createGildedCave(Registerable context, BiomeColorsDTO biomeColors) { @@ -236,7 +236,7 @@ public static Biome createGildedCave(Registerable context, BiomeColorsDTO addBasicFeatures(generationSettings, true); - return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true); + return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true, true); } public static Biome createIzherAbanCave(Registerable context, BiomeColorsDTO biomeColors) { @@ -252,7 +252,7 @@ public static Biome createIzherAbanCave(Registerable context, BiomeColors undergroundOres.add(MiscPlacedFeatures.DISK_GRAVEL); addBasicFeatures(generationSettings, true); - return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true); + return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true, false); } public static Biome createLimestoneCave(Registerable context, BiomeColorsDTO biomeColors) { @@ -267,7 +267,7 @@ public static Biome createLimestoneCave(Registerable context, BiomeColors undergroundOres.add(MiscPlacedFeatures.DISK_GRAVEL); addBasicFeatures(generationSettings, true); - return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true); + return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true, false); } public static Biome createMudCaves(Registerable context, BiomeColorsDTO biomeColors) { @@ -282,7 +282,7 @@ public static Biome createMudCaves(Registerable context, BiomeColorsDTO b undergroundOres.add(CavesPlacedFeatures.POOL_MUD); undergroundOres.add(MiscPlacedFeatures.DISK_GRAVEL); - return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true); + return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true, false); } public static Biome createFungusCave(Registerable context, BiomeColorsDTO biomeColors) { @@ -319,7 +319,7 @@ public static Biome createFungusCave(Registerable context, BiomeColorsDTO //generationSettings.feature(GenerationStep.Feature.VEGETAL_DECORATION, CavesPlacedFeatures.TREE_YELLOW_AMANITA); generationSettings.feature(GenerationStep.Feature.VEGETAL_DECORATION, CavesPlacedFeatures.GLOWWORM_WEBBING); - return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true); + return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true, true); } public static Biome createMithrilCave(Registerable context, BiomeColorsDTO biomeColors) { @@ -329,7 +329,7 @@ public static Biome createMithrilCave(Registerable context, BiomeColorsDT addBasicFeatures(generationSettings, true); undergroundOres.add(CavesPlacedFeatures.ORE_MITHRIL); - return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true); + return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true, true); } public static Biome createBasaltCave(Registerable context, BiomeColorsDTO biomeColors) { @@ -343,7 +343,7 @@ public static Biome createBasaltCave(Registerable context, BiomeColorsDTO undergroundOres.add(CavesPlacedFeatures.ORE_ASHEN_DIRT); undergroundOres.add(MiscPlacedFeatures.DISK_GRAVEL); - return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true); + return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true, true); } public static Biome createMagmaCave(Registerable context, BiomeColorsDTO biomeColors) { @@ -355,7 +355,7 @@ public static Biome createMagmaCave(Registerable context, BiomeColorsDTO undergroundOres.add(CavesPlacedFeatures.ORE_MAGMA_ABUNDANT); undergroundOres.add(CavesPlacedFeatures.ORE_ASHEN_DIRT); - return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true); + return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, true, true, true); } public static Biome createDryCave(Registerable context, BiomeColorsDTO biomeColors) { @@ -370,7 +370,7 @@ public static Biome createDryCave(Registerable context, BiomeColorsDTO bi undergroundOres.add(CavesPlacedFeatures.PILLAR_SMOOTH_SANDSTONE); addBasicFeatures(generationSettings, true); - return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, false, true); + return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, false, true, false); } public static Biome createIceCaves(Registerable context, BiomeColorsDTO biomeColors) { @@ -387,7 +387,7 @@ public static Biome createIceCaves(Registerable context, BiomeColorsDTO b undergroundOres.add(CavesPlacedFeatures.STICKY_SNOW); addBasicFeatures(generationSettings, true); - return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, false, true); + return createBiome(biomeColors, spawnSettings, generationSettings, 0.5f, false, true, true); } private static void addBasicFeatures(GenerationSettings.LookupBackedBuilder generationSettings, boolean vanillaRocks) { @@ -439,11 +439,17 @@ private static void addBasicFeatures(GenerationSettings.LookupBackedBuilder gene DefaultBiomeFeatures.addFrozenTopLayer(generationSettings); } - public static Biome createBiome(BiomeColorsDTO biomeColors, SpawnSettings.Builder spawnSettings, GenerationSettings.LookupBackedBuilder generationSettings, float temperature, boolean precipitation, boolean monsters) { + public static Biome createBiome(BiomeColorsDTO biomeColors, SpawnSettings.Builder spawnSettings, GenerationSettings.LookupBackedBuilder generationSettings, float temperature, boolean precipitation, boolean haveMonsters, boolean haveDeepMonsters) { ModCaveBiomeFeatures.addBats(spawnSettings); - if(monsters) { - ModCaveBiomeFeatures.addSpiders(spawnSettings); - ModCaveBiomeFeatures.addWildGoblins(spawnSettings); + if(haveMonsters) { + ModCaveBiomeFeatures.addSpiderLarvas(spawnSettings); + if(haveDeepMonsters){ + ModCaveBiomeFeatures.addGroupWildGoblins(spawnSettings); + ModCaveBiomeFeatures.addCaveTroll(spawnSettings); + ModCaveBiomeFeatures.addSpiders(spawnSettings); + } else { + ModCaveBiomeFeatures.addParseWildGoblins(spawnSettings); + } } undergroundOres = undergroundOres.stream().sorted(Comparator.comparing(a -> a.getValue().toString())).toList(); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/world/biomes/surface/ModBiomes.java b/middle-earth/src/main/java/net/sevenstars/middleearth/world/biomes/surface/ModBiomes.java index e9ef2f532a..0116a66899 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/world/biomes/surface/ModBiomes.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/world/biomes/surface/ModBiomes.java @@ -1,6 +1,11 @@ package net.sevenstars.middleearth.world.biomes.surface; +import net.minecraft.registry.Registerable; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; import net.minecraft.world.biome.*; +import net.minecraft.world.gen.GenerationStep; +import net.minecraft.world.gen.feature.*; import net.sevenstars.middleearth.particles.ModParticleTypes; import net.sevenstars.middleearth.world.biomes.BiomeColorsDTO; import net.sevenstars.middleearth.world.biomes.MEBiomeKeys; @@ -8,11 +13,6 @@ import net.sevenstars.middleearth.world.features.misc.ModMiscPlacedFeatures; import net.sevenstars.middleearth.world.features.vegetation.ModVegetationPlacedFeatures; import net.sevenstars.middleearth.world.spawners.ModSpawnSettingsBuilder; -import net.minecraft.registry.Registerable; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.RegistryKeys; -import net.minecraft.world.gen.GenerationStep; -import net.minecraft.world.gen.feature.*; import java.util.ArrayList; import java.util.Comparator; @@ -4313,6 +4313,9 @@ public static void registerBiome(Registerable context, RegistryKey BiomeColorsDTO biomeColorsDTO = MapBiomeData.getBiome(biomeRegistryKey).getBiomeColors(); + + ModSpawnSettingsBuilder.addNpcs(spawnSettings); + Biome biome = (new Biome.Builder()) .precipitation(precipitation) .temperature(temperature) diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/world/dimension/ModDimensions.java b/middle-earth/src/main/java/net/sevenstars/middleearth/world/dimension/ModDimensions.java index d32ae52cb8..260531866b 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/world/dimension/ModDimensions.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/world/dimension/ModDimensions.java @@ -16,7 +16,7 @@ import net.minecraft.world.dimension.DimensionOptions; import net.sevenstars.middleearth.MiddleEarth; import net.sevenstars.middleearth.config.ModServerConfigs; -import net.sevenstars.middleearth.registries.RegistryAliases; +import net.sevenstars.middleearth.registries.RegistryAliasesME; import net.sevenstars.middleearth.resources.datas.attributes.AttributePool; import net.sevenstars.middleearth.resources.datas.factions.FactionUtil; import net.sevenstars.middleearth.resources.datas.races.Race; @@ -46,7 +46,7 @@ public class ModDimensions { public static void register() { Registry.register(Registries.CHUNK_GENERATOR, ME_DIMENSION_ID, MiddleEarthChunkGenerator.CODEC); ME_WORLD_KEY = RegistryKey.of(RegistryKeys.WORLD, ME_DIMENSION_ID); - RegistryAliases.aliases.add(new RegistryAliases.Alias(Registries.CHUNK_GENERATOR, ME_DIMENSION_ID.getPath())); + RegistryAliasesME.aliases.add(new RegistryAliasesME.Alias(Registries.CHUNK_GENERATOR, ME_DIMENSION_ID.getPath())); MiddleEarth.LOGGER.logDebugMsg("Registering ModDimensions for " + MiddleEarth.MOD_ID); } diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/world/spawners/ModEntitySpawning.java b/middle-earth/src/main/java/net/sevenstars/middleearth/world/spawners/ModEntitySpawning.java index 02652ee3ba..5c1cda8b96 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/world/spawners/ModEntitySpawning.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/world/spawners/ModEntitySpawning.java @@ -1,6 +1,6 @@ package net.sevenstars.middleearth.world.spawners; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.sevenstars.middleearth.world.biomes.MEBiomeKeys; import net.minecraft.registry.RegistryKey; import net.minecraft.world.biome.Biome; @@ -13,107 +13,107 @@ public class ModEntitySpawning { public static void addSpawns() { /*List banditSpawnSettings = List.of( - new EntitySpawningSettings(ModEntities.BANDIT_MILITIA, 1, 4, 50, true), - new EntitySpawningSettings(ModEntities.BANDIT_SOLDIER, 1, 3, 40, true), - new EntitySpawningSettings(ModEntities.BANDIT_CHIEFTAIN, 1, 2, 10, true) + new EntitySpawningSettings(EntitiesME.BANDIT_MILITIA, 1, 4, 50, true), + new EntitySpawningSettings(EntitiesME.BANDIT_SOLDIER, 1, 3, 40, true), + new EntitySpawningSettings(EntitiesME.BANDIT_CHIEFTAIN, 1, 2, 10, true) ); List wildGoblinsSpawnSettings = List.of( - new EntitySpawningSettings(ModEntities.MISTY_GOBLIN_SNAGA, 1, 3, 32, true), - new EntitySpawningSettings(ModEntities.MISTY_GOBLIN_WARRIOR, 1, 4, 41, true), - new EntitySpawningSettings(ModEntities.MISTY_HOBGOBLIN_SOLDIER, 1, 3, 22, true), - new EntitySpawningSettings(ModEntities.MISTY_HOBGOBLIN_VETERAN, 1, 2, 5, true) + new EntitySpawningSettings(EntitiesME.MISTY_GOBLIN_SNAGA, 1, 3, 32, true), + new EntitySpawningSettings(EntitiesME.MISTY_GOBLIN_WARRIOR, 1, 4, 41, true), + new EntitySpawningSettings(EntitiesME.MISTY_HOBGOBLIN_SOLDIER, 1, 3, 22, true), + new EntitySpawningSettings(EntitiesME.MISTY_HOBGOBLIN_VETERAN, 1, 2, 5, true) ); List goblinsSpawnSettings = List.of( - new EntitySpawningSettings(ModEntities.MISTY_GOBLIN_SNAGA, 1, 3, 28, true), - new EntitySpawningSettings(ModEntities.MISTY_GOBLIN_WARRIOR, 1, 4, 35, true), - new EntitySpawningSettings(ModEntities.MISTY_HOBGOBLIN_SOLDIER, 1, 3, 27, true), - new EntitySpawningSettings(ModEntities.MISTY_HOBGOBLIN_VETERAN, 1, 2, 8, true), - new EntitySpawningSettings(ModEntities.MISTY_HOBGOBLIN_LEADER, 1, 1, 2, true) + new EntitySpawningSettings(EntitiesME.MISTY_GOBLIN_SNAGA, 1, 3, 28, true), + new EntitySpawningSettings(EntitiesME.MISTY_GOBLIN_WARRIOR, 1, 4, 35, true), + new EntitySpawningSettings(EntitiesME.MISTY_HOBGOBLIN_SOLDIER, 1, 3, 27, true), + new EntitySpawningSettings(EntitiesME.MISTY_HOBGOBLIN_VETERAN, 1, 2, 8, true), + new EntitySpawningSettings(EntitiesME.MISTY_HOBGOBLIN_LEADER, 1, 1, 2, true) ); List gundabadSpawnSettings = List.of( - new EntitySpawningSettings(ModEntities.MISTY_GOBLIN_SNAGA, 1, 3, 23), - new EntitySpawningSettings(ModEntities.MISTY_GOBLIN_WARRIOR, 1, 4, 40), - new EntitySpawningSettings(ModEntities.MISTY_HOBGOBLIN_SOLDIER, 1, 3, 23), - new EntitySpawningSettings(ModEntities.MISTY_HOBGOBLIN_VETERAN, 1, 2, 8), - new EntitySpawningSettings(ModEntities.STONE_TROLL, 1, 2, 5, true), - new EntitySpawningSettings(ModEntities.MISTY_HOBGOBLIN_LEADER, 1, 1, 2) + new EntitySpawningSettings(EntitiesME.MISTY_GOBLIN_SNAGA, 1, 3, 23), + new EntitySpawningSettings(EntitiesME.MISTY_GOBLIN_WARRIOR, 1, 4, 40), + new EntitySpawningSettings(EntitiesME.MISTY_HOBGOBLIN_SOLDIER, 1, 3, 23), + new EntitySpawningSettings(EntitiesME.MISTY_HOBGOBLIN_VETERAN, 1, 2, 8), + new EntitySpawningSettings(EntitiesME.STONE_TROLL, 1, 2, 5, true), + new EntitySpawningSettings(EntitiesME.MISTY_HOBGOBLIN_LEADER, 1, 1, 2) ); List wildLongBeardsSpawnSettings = List.of( - new EntitySpawningSettings(ModEntities.LONGBEARD_MILITIA, 1, 3, 35), - new EntitySpawningSettings(ModEntities.LONGBEARD_SOLDIER, 1, 4, 45), - new EntitySpawningSettings(ModEntities.LONGBEARD_ELITE, 1, 3, 15), - new EntitySpawningSettings(ModEntities.LONGBEARD_VETERAN, 1, 2, 5) + new EntitySpawningSettings(EntitiesME.LONGBEARD_MILITIA, 1, 3, 35), + new EntitySpawningSettings(EntitiesME.LONGBEARD_SOLDIER, 1, 4, 45), + new EntitySpawningSettings(EntitiesME.LONGBEARD_ELITE, 1, 3, 15), + new EntitySpawningSettings(EntitiesME.LONGBEARD_VETERAN, 1, 2, 5) ); List longBeardsSpawnSettings = List.of( - new EntitySpawningSettings(ModEntities.LONGBEARD_MILITIA, 1, 3, 25), - new EntitySpawningSettings(ModEntities.LONGBEARD_SOLDIER, 1, 4, 45), - new EntitySpawningSettings(ModEntities.LONGBEARD_ELITE, 1, 3, 20), - new EntitySpawningSettings(ModEntities.LONGBEARD_VETERAN, 1, 2, 8), - new EntitySpawningSettings(ModEntities.LONGBEARD_LEADER, 1, 1, 2) + new EntitySpawningSettings(EntitiesME.LONGBEARD_MILITIA, 1, 3, 25), + new EntitySpawningSettings(EntitiesME.LONGBEARD_SOLDIER, 1, 4, 45), + new EntitySpawningSettings(EntitiesME.LONGBEARD_ELITE, 1, 3, 20), + new EntitySpawningSettings(EntitiesME.LONGBEARD_VETERAN, 1, 2, 8), + new EntitySpawningSettings(EntitiesME.LONGBEARD_LEADER, 1, 1, 2) ); List rohanSpawnSettings = List.of( - new EntitySpawningSettings(ModEntities.ROHIRRIM_MILITIA, 1, 3, 25), - new EntitySpawningSettings(ModEntities.ROHIRRIM_SOLDIER, 1, 4, 45), - new EntitySpawningSettings(ModEntities.ROHIRRIM_KNIGHT, 1, 3, 20), - new EntitySpawningSettings(ModEntities.ROHIRRIM_VETERAN, 1, 2, 8), - new EntitySpawningSettings(ModEntities.ROHIRRIM_LEADER, 1, 1, 2) + new EntitySpawningSettings(EntitiesME.ROHIRRIM_MILITIA, 1, 3, 25), + new EntitySpawningSettings(EntitiesME.ROHIRRIM_SOLDIER, 1, 4, 45), + new EntitySpawningSettings(EntitiesME.ROHIRRIM_KNIGHT, 1, 3, 20), + new EntitySpawningSettings(EntitiesME.ROHIRRIM_VETERAN, 1, 2, 8), + new EntitySpawningSettings(EntitiesME.ROHIRRIM_LEADER, 1, 1, 2) ); List daleSpawnSettings = List.of( - new EntitySpawningSettings(ModEntities.DALISH_MILITIA, 1, 3, 25), - new EntitySpawningSettings(ModEntities.DALISH_SOLDIER, 1, 4, 45), - new EntitySpawningSettings(ModEntities.DALISH_KNIGHT, 1, 3, 20), - new EntitySpawningSettings(ModEntities.DALISH_VETERAN, 1, 2, 8), - new EntitySpawningSettings(ModEntities.DALISH_LEADER, 1, 1, 2) + new EntitySpawningSettings(EntitiesME.DALISH_MILITIA, 1, 3, 25), + new EntitySpawningSettings(EntitiesME.DALISH_SOLDIER, 1, 4, 45), + new EntitySpawningSettings(EntitiesME.DALISH_KNIGHT, 1, 3, 20), + new EntitySpawningSettings(EntitiesME.DALISH_VETERAN, 1, 2, 8), + new EntitySpawningSettings(EntitiesME.DALISH_LEADER, 1, 1, 2) ); List lothlorienSpawnSettings = List.of( - new EntitySpawningSettings(ModEntities.LORIEN_MILITIA, 1, 3, 24), - new EntitySpawningSettings(ModEntities.LORIEN_SOLDIER, 1, 4, 45), - new EntitySpawningSettings(ModEntities.LORIEN_KNIGHT, 1, 3, 20), - new EntitySpawningSettings(ModEntities.LORIEN_VETERAN, 1, 2, 8), - new EntitySpawningSettings(ModEntities.LORIEN_LEADER, 1, 1, 3) + new EntitySpawningSettings(EntitiesME.LORIEN_MILITIA, 1, 3, 24), + new EntitySpawningSettings(EntitiesME.LORIEN_SOLDIER, 1, 4, 45), + new EntitySpawningSettings(EntitiesME.LORIEN_KNIGHT, 1, 3, 20), + new EntitySpawningSettings(EntitiesME.LORIEN_VETERAN, 1, 2, 8), + new EntitySpawningSettings(EntitiesME.LORIEN_LEADER, 1, 1, 3) ); List ruralGondorSpawnSettings = List.of( - new EntitySpawningSettings(ModEntities.GONDORIAN_MILITIA, 1, 3, 60), - new EntitySpawningSettings(ModEntities.GONDORIAN_SOLDIER, 1, 4, 40), - new EntitySpawningSettings(ModEntities.GONDORIAN_KNIGHT, 1, 3, 10) + new EntitySpawningSettings(EntitiesME.GONDORIAN_MILITIA, 1, 3, 60), + new EntitySpawningSettings(EntitiesME.GONDORIAN_SOLDIER, 1, 4, 40), + new EntitySpawningSettings(EntitiesME.GONDORIAN_KNIGHT, 1, 3, 10) ); List gondorSpawnSettings = List.of( - new EntitySpawningSettings(ModEntities.GONDORIAN_MILITIA, 1, 3, 25), - new EntitySpawningSettings(ModEntities.GONDORIAN_SOLDIER, 1, 4, 45), - new EntitySpawningSettings(ModEntities.GONDORIAN_KNIGHT, 1, 3, 20), - new EntitySpawningSettings(ModEntities.GONDORIAN_VETERAN, 1, 2, 8), - new EntitySpawningSettings(ModEntities.GONDORIAN_LEADER, 1, 1, 2) + new EntitySpawningSettings(EntitiesME.GONDORIAN_MILITIA, 1, 3, 25), + new EntitySpawningSettings(EntitiesME.GONDORIAN_SOLDIER, 1, 4, 45), + new EntitySpawningSettings(EntitiesME.GONDORIAN_KNIGHT, 1, 3, 20), + new EntitySpawningSettings(EntitiesME.GONDORIAN_VETERAN, 1, 2, 8), + new EntitySpawningSettings(EntitiesME.GONDORIAN_LEADER, 1, 1, 2) ); List garrisonGondorSpawnSettings = List.of( - new EntitySpawningSettings(ModEntities.GONDORIAN_MILITIA, 1, 3, 22), - new EntitySpawningSettings(ModEntities.GONDORIAN_SOLDIER, 1, 4, 50), - new EntitySpawningSettings(ModEntities.GONDORIAN_KNIGHT, 1, 3, 20), - new EntitySpawningSettings(ModEntities.GONDORIAN_VETERAN, 1, 2, 8) + new EntitySpawningSettings(EntitiesME.GONDORIAN_MILITIA, 1, 3, 22), + new EntitySpawningSettings(EntitiesME.GONDORIAN_SOLDIER, 1, 4, 50), + new EntitySpawningSettings(EntitiesME.GONDORIAN_KNIGHT, 1, 3, 20), + new EntitySpawningSettings(EntitiesME.GONDORIAN_VETERAN, 1, 2, 8) ); List wildMordorSpawnSettings = List.of( - new EntitySpawningSettings(ModEntities.MORDOR_ORC_SNAGA, 1, 3, 40, true), - new EntitySpawningSettings(ModEntities.MORDOR_ORC_SOLDIER, 1, 4, 46, true), - new EntitySpawningSettings(ModEntities.MORDOR_BLACK_URUK_SOLDIER, 1, 3, 14, true) + new EntitySpawningSettings(EntitiesME.MORDOR_ORC_SNAGA, 1, 3, 40, true), + new EntitySpawningSettings(EntitiesME.MORDOR_ORC_SOLDIER, 1, 4, 46, true), + new EntitySpawningSettings(EntitiesME.MORDOR_BLACK_URUK_SOLDIER, 1, 3, 14, true) ); List mordorSpawnSettings = List.of( - new EntitySpawningSettings(ModEntities.MORDOR_ORC_SNAGA, 1, 3, 25), - new EntitySpawningSettings(ModEntities.MORDOR_ORC_SOLDIER, 1, 4, 44), - new EntitySpawningSettings(ModEntities.MORDOR_BLACK_URUK_SOLDIER, 1, 3, 21), - new EntitySpawningSettings(ModEntities.MORDOR_BLACK_URUK_VETERAN, 1, 2, 8), - new EntitySpawningSettings(ModEntities.MORDOR_BLACK_URUK_LEADER, 1, 1, 2) + new EntitySpawningSettings(EntitiesME.MORDOR_ORC_SNAGA, 1, 3, 25), + new EntitySpawningSettings(EntitiesME.MORDOR_ORC_SOLDIER, 1, 4, 44), + new EntitySpawningSettings(EntitiesME.MORDOR_BLACK_URUK_SOLDIER, 1, 3, 21), + new EntitySpawningSettings(EntitiesME.MORDOR_BLACK_URUK_VETERAN, 1, 2, 8), + new EntitySpawningSettings(EntitiesME.MORDOR_BLACK_URUK_LEADER, 1, 1, 2) ); List isengardSpawnSettings = List.of( - new EntitySpawningSettings(ModEntities.ISENGARD_ORC_SNAGA, 1, 3, 23), - new EntitySpawningSettings(ModEntities.ISENGARD_ORC_WARRIOR, 1, 4, 43), - new EntitySpawningSettings(ModEntities.ISENGARD_URUK_HAI_SOLDIER, 1, 3, 24), - new EntitySpawningSettings(ModEntities.ISENGARD_URUK_HAI_VETERAN, 1, 2, 8), - new EntitySpawningSettings(ModEntities.ISENGARD_URUK_HAI_LEADER, 1, 1, 2) + new EntitySpawningSettings(EntitiesME.ISENGARD_ORC_SNAGA, 1, 3, 23), + new EntitySpawningSettings(EntitiesME.ISENGARD_ORC_WARRIOR, 1, 4, 43), + new EntitySpawningSettings(EntitiesME.ISENGARD_URUK_HAI_SOLDIER, 1, 3, 24), + new EntitySpawningSettings(EntitiesME.ISENGARD_URUK_HAI_VETERAN, 1, 2, 8), + new EntitySpawningSettings(EntitiesME.ISENGARD_URUK_HAI_LEADER, 1, 1, 2) );*/ List mirkwoodSpiders = List.of( - new EntitySpawningSettings(ModEntities.SHELOBITE_SCUTTLER, 2, 5, 100, true) + new EntitySpawningSettings(EntitiesME.SHELOBITE_SCUTTLER, 2, 5, 100, true) ); /* - List stoneTroll = List.of(new EntitySpawningSettings(ModEntities.STONE_TROLL, 0, 1, 20, true)); + List stoneTroll = List.of(new EntitySpawningSettings(EntitiesME.STONE_TROLL, 0, 1, 20, true)); List goblinsAndBandits = Stream.concat(wildGoblinsSpawnSettings.stream(), banditSpawnSettings.stream()).toList(); List goblinsAndStoneTroll = Stream.concat(wildGoblinsSpawnSettings.stream(), stoneTroll.stream()).toList(); List goblinsAndLongbeards = Stream.concat(wildGoblinsSpawnSettings.stream(), wildLongBeardsSpawnSettings.stream()).toList(); @@ -121,22 +121,22 @@ public static void addSpawns() { List gondorGarrisonAndMordor = Stream.concat(garrisonGondorSpawnSettings.stream(), wildMordorSpawnSettings.stream()).toList(); List mordorAndSpiders = Stream.concat(wildMordorSpawnSettings.stream(), mirkwoodSpiders.stream()).toList(); */ - spawns.put(MEBiomeKeys.BARROW_DOWNS, List.of(new EntitySpawningSettings(ModEntities.BARROW_WIGHT, 0, 1))); + spawns.put(MEBiomeKeys.BARROW_DOWNS, List.of(new EntitySpawningSettings(EntitiesME.BARROW_WIGHT, 0, 1))); /*spawns.put(MEBiomeKeys.TROLLSHAWS, List.of( - new EntitySpawningSettings(ModEntities.MISTY_GOBLIN_SNAGA, 1, 3, 2, true) , - new EntitySpawningSettings(ModEntities.MISTY_GOBLIN_WARRIOR, 1, 2, 2, true) + new EntitySpawningSettings(EntitiesME.MISTY_GOBLIN_SNAGA, 1, 3, 2, true) , + new EntitySpawningSettings(EntitiesME.MISTY_GOBLIN_WARRIOR, 1, 2, 2, true) )); - spawns.put(MEBiomeKeys.FORODWAITH, List.of(new EntitySpawningSettings(ModEntities.SNOW_TROLL, 0, 1))); + spawns.put(MEBiomeKeys.FORODWAITH, List.of(new EntitySpawningSettings(EntitiesME.SNOW_TROLL, 0, 1))); spawns.put(MEBiomeKeys.SHIRE, List.of( - new EntitySpawningSettings(ModEntities.HOBBIT_CIVILIAN, 1, 4, 7), - new EntitySpawningSettings(ModEntities.HOBBIT_SHIRRIFF, 1, 1, 1) + new EntitySpawningSettings(EntitiesME.HOBBIT_CIVILIAN, 1, 4, 7), + new EntitySpawningSettings(EntitiesME.HOBBIT_SHIRRIFF, 1, 1, 1) )); spawns.put(MEBiomeKeys.SHIRE_EDGE, List.of( - new EntitySpawningSettings(ModEntities.HOBBIT_CIVILIAN, 1, 4, 6), - new EntitySpawningSettings(ModEntities.HOBBIT_BOUNDER, 1, 4, 3), - new EntitySpawningSettings(ModEntities.HOBBIT_SHIRRIFF, 1, 1, 1) + new EntitySpawningSettings(EntitiesME.HOBBIT_CIVILIAN, 1, 4, 6), + new EntitySpawningSettings(EntitiesME.HOBBIT_BOUNDER, 1, 4, 3), + new EntitySpawningSettings(EntitiesME.HOBBIT_SHIRRIFF, 1, 1, 1) )); spawns.put(MEBiomeKeys.ANDUIN_VALES, wildGoblinsSpawnSettings); @@ -171,9 +171,9 @@ public static void addSpawns() { spawns.put(MEBiomeKeys.LOTHLORIEN_GLADE, lothlorienSpawnSettings); spawns.put(MEBiomeKeys.LOTHLORIEN_BLOSSOM, lothlorienSpawnSettings); spawns.put(MEBiomeKeys.LORIEN_EDGE, List.of( - new EntitySpawningSettings(ModEntities.LORIEN_MILITIA, 1, 3, 3), - new EntitySpawningSettings(ModEntities.LORIEN_SOLDIER, 1, 4, 4), - new EntitySpawningSettings(ModEntities.LORIEN_KNIGHT, 1, 3, 2) + new EntitySpawningSettings(EntitiesME.LORIEN_MILITIA, 1, 3, 3), + new EntitySpawningSettings(EntitiesME.LORIEN_SOLDIER, 1, 4, 4), + new EntitySpawningSettings(EntitiesME.LORIEN_KNIGHT, 1, 3, 2) )); spawns.put(MEBiomeKeys.LONELY_MOUNTAIN_BASE, longBeardsSpawnSettings); @@ -187,10 +187,10 @@ public static void addSpawns() { spawns.put(MEBiomeKeys.DALE_RIVERSIDE, goblinsAndLongbeards); spawns.put(MEBiomeKeys.DALE_FOREST, banditSpawnSettings); - spawns.put(MEBiomeKeys.MIRKWOOD, List.of(new EntitySpawningSettings(ModEntities.MIRKWOOD_SPIDER, 1, 3))); - spawns.put(MEBiomeKeys.WEBBED_WOODS, List.of(new EntitySpawningSettings(ModEntities.MIRKWOOD_SPIDER, 3, 6))); + spawns.put(MEBiomeKeys.MIRKWOOD, List.of(new EntitySpawningSettings(EntitiesME.MIRKWOOD_SPIDER, 1, 3))); + spawns.put(MEBiomeKeys.WEBBED_WOODS, List.of(new EntitySpawningSettings(EntitiesME.MIRKWOOD_SPIDER, 3, 6))); spawns.put(MEBiomeKeys.DARK_MIRKWOOD, mordorAndSpiders); - spawns.put(MEBiomeKeys.WEBBED_DARK_WOODS, List.of(new EntitySpawningSettings(ModEntities.MIRKWOOD_SPIDER, 3, 6))); + spawns.put(MEBiomeKeys.WEBBED_DARK_WOODS, List.of(new EntitySpawningSettings(EntitiesME.MIRKWOOD_SPIDER, 3, 6))); spawns.put(MEBiomeKeys.DOL_GULDUR, mordorSpawnSettings); spawns.put(MEBiomeKeys.DALE, daleSpawnSettings); diff --git a/middle-earth/src/main/java/net/sevenstars/middleearth/world/spawners/ModSpawnSettingsBuilder.java b/middle-earth/src/main/java/net/sevenstars/middleearth/world/spawners/ModSpawnSettingsBuilder.java index a77b60134b..147270595d 100644 --- a/middle-earth/src/main/java/net/sevenstars/middleearth/world/spawners/ModSpawnSettingsBuilder.java +++ b/middle-earth/src/main/java/net/sevenstars/middleearth/world/spawners/ModSpawnSettingsBuilder.java @@ -1,6 +1,6 @@ package net.sevenstars.middleearth.world.spawners; -import net.sevenstars.middleearth.entity.ModEntities; +import net.sevenstars.middleearth.entity.EntitiesME; import net.minecraft.entity.EntityType; import net.minecraft.entity.SpawnGroup; import net.minecraft.world.biome.SpawnSettings; @@ -29,20 +29,20 @@ public static void addFarmAnimals(SpawnSettings.Builder builder) { } public static void addRareWarg(SpawnSettings.Builder builder){ - builder.spawn(SpawnGroup.CREATURE, 3, new SpawnSettings.SpawnEntry(ModEntities.WARG, 1, 3)); + builder.spawn(SpawnGroup.CREATURE, 3, new SpawnSettings.SpawnEntry(EntitiesME.WARG, 1, 3)); } public static void addUncommonWarg(SpawnSettings.Builder builder){ - builder.spawn(SpawnGroup.CREATURE, 6,new SpawnSettings.SpawnEntry(ModEntities.WARG, 1, 3)); + builder.spawn(SpawnGroup.CREATURE, 6,new SpawnSettings.SpawnEntry(EntitiesME.WARG, 1, 3)); } public static void addRareStoneTroll(SpawnSettings.Builder builder){ - builder.spawn(SpawnGroup.CREATURE,3, new SpawnSettings.SpawnEntry(ModEntities.STONE_TROLL, 1, 2)); + builder.spawn(SpawnGroup.CREATURE,3, new SpawnSettings.SpawnEntry(EntitiesME.STONE_TROLL, 1, 2)); } public static void addMirkwoodSpider(SpawnSettings.Builder builder){ - builder.spawn(SpawnGroup.CREATURE, 9, new SpawnSettings.SpawnEntry(ModEntities.SHELOBITE_SCUTTLER, 2, 4)); + builder.spawn(SpawnGroup.CREATURE, 9, new SpawnSettings.SpawnEntry(EntitiesME.SHELOBITE_SCUTTLER, 2, 4)); } public static void addRareMirkwoodSpider(SpawnSettings.Builder builder){ - builder.spawn(SpawnGroup.CREATURE, 5, new SpawnSettings.SpawnEntry(ModEntities.SHELOBITE_SCUTTLER, 1, 2)); + builder.spawn(SpawnGroup.CREATURE, 5, new SpawnSettings.SpawnEntry(EntitiesME.SHELOBITE_SCUTTLER, 1, 2)); } public static void addUncommonBats(SpawnSettings.Builder builder){ @@ -76,7 +76,7 @@ public static void addMountainsMobs(SpawnSettings.Builder builder) { builder.spawn(SpawnGroup.CREATURE, 4, new SpawnSettings.SpawnEntry(EntityType.GOAT, 1, 3)); } public static void addBroadhoofGoats(SpawnSettings.Builder builder) { - builder.spawn(SpawnGroup.CREATURE, 4, new SpawnSettings.SpawnEntry(ModEntities.BROADHOOF_GOAT, 1, 3)); + builder.spawn(SpawnGroup.CREATURE, 4, new SpawnSettings.SpawnEntry(EntitiesME.BROADHOOF_GOAT, 1, 3)); } public static void addNordicMobs(SpawnSettings.Builder builder) { @@ -130,7 +130,12 @@ public static void addDeer(SpawnSettings.Builder builder) { builder.spawn(SpawnGroup.CREATURE, 10, new SpawnSettings.SpawnEntry(EntitiesWT.DEER, 1, 4)); } + public static void addNpcs(SpawnSettings.Builder spawnSettings) { + spawnSettings.spawn(SpawnGroup.MONSTER, 2, new SpawnSettings.SpawnEntry(EntitiesME.NPC, 1, 2)) + .spawnCost(EntitiesME.NPC, 0.7, 0.3); + } + public static void addGreatHorn(SpawnSettings.Builder builder) { - builder.spawn(SpawnGroup.CREATURE, 5, new SpawnSettings.SpawnEntry(ModEntities.GREAT_HORN, 1, 2)); + builder.spawn(SpawnGroup.CREATURE, 5, new SpawnSettings.SpawnEntry(EntitiesME.GREAT_HORN, 1, 2)); } } diff --git a/middle-earth/src/main/resources/assets/middle-earth/atlases/character_clothes.json b/middle-earth/src/main/resources/assets/middle-earth/atlases/character_clothes.json new file mode 100644 index 0000000000..d1d0db29b5 --- /dev/null +++ b/middle-earth/src/main/resources/assets/middle-earth/atlases/character_clothes.json @@ -0,0 +1,19 @@ +{ + "sources": [ + { + "type": "minecraft:directory", + "prefix": "character_clothes/base/", + "source": "character_clothes/base" + }, + { + "type": "minecraft:directory", + "prefix": "character_clothes/over/", + "source": "character_clothes/over" + }, + { + "type": "minecraft:directory", + "prefix": "character_clothes/extra/", + "source": "character_clothes/extra" + } + ] +} \ No newline at end of file diff --git a/middle-earth/src/main/resources/assets/middle-earth/atlases/character_clothings.json b/middle-earth/src/main/resources/assets/middle-earth/atlases/character_clothings.json deleted file mode 100644 index 1270ac4f97..0000000000 --- a/middle-earth/src/main/resources/assets/middle-earth/atlases/character_clothings.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "sources": [ - { - "type": "paletted_permutations", - "textures": [ - "middle-earth:character_clothings/clothing_dwarven_garment", - "middle-earth:character_clothings/clothing_dwarven_garment_with_pants", - "middle-earth:character_clothings/clothing_full_toga", - "middle-earth:character_clothings/clothing_pants", - "middle-earth:character_clothings/clothing_robe", - "middle-earth:character_clothings/clothing_skirt", - "middle-earth:character_clothings/clothing_skirt_with_strophium", - "middle-earth:character_clothings/clothing_thong", - "middle-earth:character_clothings/clothing_toga" - ], - "palette_key": "middle-earth:character_clothings/color_palettes/base_palette", - "permutations": { - "blue_and_copper": "middle-earth:character_clothings/color_palettes/blue_and_copper", - "brown": "middle-earth:character_clothings/color_palettes/brown", - "gray": "middle-earth:character_clothings/color_palettes/gray", - "rot_green": "middle-earth:character_clothings/color_palettes/rot_green", - "white": "middle-earth:character_clothings/color_palettes/white" - } - } - ] -} diff --git a/middle-earth/src/main/resources/assets/middle-earth/atlases/character_eyes.json b/middle-earth/src/main/resources/assets/middle-earth/atlases/character_eyes.json index b2fce6d203..549f114fef 100644 --- a/middle-earth/src/main/resources/assets/middle-earth/atlases/character_eyes.json +++ b/middle-earth/src/main/resources/assets/middle-earth/atlases/character_eyes.json @@ -3,24 +3,23 @@ { "type": "paletted_permutations", "textures": [ - "middle-earth:character_eyes/eye_common", - "middle-earth:character_eyes/eye_blind_left", - "middle-earth:character_eyes/eye_blind_right", - "middle-earth:character_eyes/eye_small", - "middle-earth:character_eyes/eye_small_high_wide", - "middle-earth:character_eyes/eye_small_wide", - "middle-earth:character_eyes/eye_small_low_wide", - - "middle-earth:character_eyes/eye_common_emissive", - "middle-earth:character_eyes/eye_common_emissive_overlay", - "middle-earth:character_eyes/eye_blind_left_emissive", - "middle-earth:character_eyes/eye_blind_left_emissive_overlay", - "middle-earth:character_eyes/eye_blind_right_emissive", - "middle-earth:character_eyes/eye_blind_right_emissive_overlay", - "middle-earth:character_eyes/eye_small_emissive", - "middle-earth:character_eyes/eye_small_high_wide_emissive", - "middle-earth:character_eyes/eye_small_wide_emissive", - "middle-earth:character_eyes/eye_small_low_wide_emissive" + "middle-earth:character_eyes/eye_blind_left", + "middle-earth:character_eyes/eye_blind_left_emissive", + "middle-earth:character_eyes/eye_blind_right", + "middle-earth:character_eyes/eye_blind_right_emissive", + "middle-earth:character_eyes/eye_common", + "middle-earth:character_eyes/eye_common_emissive", + "middle-earth:character_eyes/eye_common_high", + "middle-earth:character_eyes/eye_common_high_emissive", + "middle-earth:character_eyes/eye_small", + "middle-earth:character_eyes/eye_small_emissive", + "middle-earth:character_eyes/eye_small_high_wide", + "middle-earth:character_eyes/eye_small_high_wide_emissive", + "middle-earth:character_eyes/eye_small_wide_emissive", + "middle-earth:character_eyes/eye_small_very_high_wide", + "middle-earth:character_eyes/eye_small_very_high_wide_emissive", + "middle-earth:character_eyes/eye_small_wide", + "middle-earth:character_eyes/eye_small_wide_emissive" ], "palette_key": "middle-earth:character_eyes/color_palettes/base_palette", "permutations": { diff --git a/middle-earth/src/main/resources/assets/middle-earth/atlases/character_skins.json b/middle-earth/src/main/resources/assets/middle-earth/atlases/character_skins.json index 6ce20035ec..811b085986 100644 --- a/middle-earth/src/main/resources/assets/middle-earth/atlases/character_skins.json +++ b/middle-earth/src/main/resources/assets/middle-earth/atlases/character_skins.json @@ -9,6 +9,8 @@ "middle-earth:character_skins/body_skin_to_bone", "middle-earth:character_skins/body_slim", + "middle-earth:character_skins/feet_normal", + "middle-earth:character_skins/ear_large_pointy", "middle-earth:character_skins/ear_normal", "middle-earth:character_skins/ear_pointy", diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothes/base/pants_beige.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothes/base/pants_beige.png new file mode 100644 index 0000000000000000000000000000000000000000..a8112e4ead62e7f5d38c95816e0ee71fd01e0d8e GIT binary patch literal 914 zcmV;D18w|?P)EX>4Tx04R}tkv&L4Q5c4wd##L68gh_mxPvw2QW1?|kpu~$23if>A2q>ylY5mG z$Dmbc=x6C~Xlbssp*0ACeju6~nu=ONZX6Yq$iC$~yytsA&i5XWj|#f!bWMY4mF##l zqNLKxiuaW+WO@h^R&}QsOUxzdSYP)@;=BusS)Kd-EWeR)bdVHaS})oqkk)|7%~DbD z9uUyiRRg4RVAM{fmqB_Iy4K(~!MQriVrIZj#%Dkd07|ZnwKmq*Z4=}PAY_=90dlIr zhTw`|vryKX?-U#QGS*T;=)e$B=83V0f<~D<1xkd;W1-*>CrYG)f3WUfq>M&^JUR-q zY+$0+{fIyKovo7{A8SnVMWFk|bw7r|y92eV>wX`*ZtVm-&v0e6{2NCw^$DJ8OA8%B z{}x5*~d9pFoC3J#31wi!cT|RDwkuc&ew3u5H?tE=#lif2TBQ+T@>pU-Kma z2qA5< zruc!%{{|BU$Qpf5_#5L0Em=px_CNXhnWvivd$DqpvHHVtt_oo>!f8UxWbO0#Zl@g} zVJ)`2C;QGRy&+lz}7XI!60Q$o*&W{h# zYPzuvm~f2X2_L;d(H5q&a&=8RUr_mQm;&f-fNl!gXLK1W&%U82eC=z1N>+rH-8U@5 zD$vSJVA*Z6vTUs>`2tKjKcGZ_W&J=IL{hdYoaG0~Vgi-_4Js2LZG_VfV6B_NCLlXI o&~P282xaL!R_z0Lc7T}2KXC4;&y5qRhyVZp07*qoM6N<$g1UXEWB>pF literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothes/base/pants_brown.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothes/base/pants_brown.png new file mode 100644 index 0000000000000000000000000000000000000000..95aafcc3dd24fdfaf88269e4d07066322dce1241 GIT binary patch literal 899 zcmV-}1AP36P)EX>4Tx04R}tkv&L4Q5c4wd##L68gh_mxPvw2QW1?|kpu~$23if>A2q>ylY5mG z$Dmbc=x6C~Xlbssp*0ACeju6~nu=ONZX6Yq$iC$~yytsA&i5XWj|#f!bWMY4mF##l zqNLKxiuaW+WO@h^R&}QsOUxzdSYP)@;=BusS)Kd-EWeR)bdVHaS})oqkk)|7%~DbD z9uUyiRRg4RVAM{fmqB_Iy4K(~!MQriVrIZj#%Dkd07|ZnwKmq*Z4=}PAY_=90dlIr zhTw`|vryKX?-U#QGS*T;=)e$B=83V0f<~D<1xkd;W1-*>CrYG)f3WUfq>M&^JUR-q zY+$0+{fIyKovo7{A8SnVMWFk|bw7r|y92eV>wX`*ZtVm-&v0e6{2NCw^$DJ8OA8%B z{}xlO)zvI!-Cg~^lkPgnI=eIO%q$TA0000000000 z#>S-F@Va?Qi}!E4@5(bnVyb!os(}Jj4?s1OvdxzXqomU2yY}_kbRS_Yy*an@$j-Ix zO){pzHGv~L*UmmQD8@vr&)`Q`D2x&cBXKz$v5NLwhPMKmWK4tW1KO7PQ2fB?KZCUj zXq){oN(SQyE#8Y1?f;VeUauW{TIe@l30A-^LIOo)h{^(>AHDD6x9e3(HG7HN=e+L^ zM#mPdEX>4Tx04R}tkv&L4Q5c4wd##L68gh_mxPvw2QW1?|kpu~$23if>A2q>ylY5mG z$Dmbc=x6C~Xlbssp*0ACeju6~nu=ONZX6Yq$iC$~yytsA&i5XWj|#f!bWMY4mF##l zqNLKxiuaW+WO@h^R&}QsOUxzdSYP)@;=BusS)Kd-EWeR)bdVHaS})oqkk)|7%~DbD z9uUyiRRg4RVAM{fmqB_Iy4K(~!MQriVrIZj#%Dkd07|ZnwKmq*Z4=}PAY_=90dlIr zhTw`|vryKX?-U#QGS*T;=)e$B=83V0f<~D<1xkd;W1-*>CrYG)f3WUfq>M&^JUR-q zY+$0+{fIyKovo7{A8SnVMWFk|bw7r|y92eV>wX`*ZtVm-&v0e6{2NCw^$DJ8OA8%B z{}xF^ zi`3ZQ6NusyoCfC(LV1C&O;}YzTma1-X2FOF8XG)EX>4Tx04R}tkv&L4Q5c4wd##L68gh_mxPvw2QW1?|kpu~$23if>A2q>ylY5mG z$Dmbc=x6C~Xlbssp*0ACeju6~nu=ONZX6Yq$iC$~yytsA&i5XWj|#f!bWMY4mF##l zqNLKxiuaW+WO@h^R&}QsOUxzdSYP)@;=BusS)Kd-EWeR)bdVHaS})oqkk)|7%~DbD z9uUyiRRg4RVAM{fmqB_Iy4K(~!MQriVrIZj#%Dkd07|ZnwKmq*Z4=}PAY_=90dlIr zhTw`|vryKX?-U#QGS*T;=)e$B=83V0f<~D<1xkd;W1-*>CrYG)f3WUfq>M&^JUR-q zY+$0+{fIyKovo7{A8SnVMWFk|bw7r|y92eV>wX`*ZtVm-&v0e6{2NCw^$DJ8OA8%B z{}xQN3MF0Q*JuN9`O)Pw0J4`q;ns`mFFAO;V000Jb zQchC<|NsC0|9W}g{r~^~X-PyuR9J=W)Zq$%APfXxZ|C0sl|%O2v zN)Zte5xHVyGQd6$$X`*IEfvA1m9xMkKX=b3e!kF56c!(VDPt9KN pLO|vUhdw~w|D#WRKrKOjY6JQ*0XfzFQMLd8002ovPDHLkV1l@23Dy7r literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothes/base/thong_brown.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothes/base/thong_brown.png new file mode 100644 index 0000000000000000000000000000000000000000..799f5d53c0d8959e388e295702296a685b508ff8 GIT binary patch literal 603 zcmV-h0;K(kP)EX>4Tx04R}tkv&L4Q5c4wd##L68gh_mxPvw2QW1?|kpu~$23if>A2q>ylY5mG z$Dmbc=x6C~Xlbssp*0ACeju6~nu=ONZX6Yq$iC$~yytsA&i5XWj|#f!bWMY4mF##l zqNLKxiuaW+WO@h^R&}QsOUxzdSYP)@;=BusS)Kd-EWeR)bdVHaS})oqkk)|7%~DbD z9uUyiRRg4RVAM{fmqB_Iy4K(~!MQriVrIZj#%Dkd07|ZnwKmq*Z4=}PAY_=90dlIr zhTw`|vryKX?-U#QGS*T;=)e$B=83V0f<~D<1xkd;W1-*>CrYG)f3WUfq>M&^JUR-q zY+$0+{fIyKovo7{A8SnVMWFk|bw7r|y92eV>wX`*ZtVm-&v0e6{2NCw^$DJ8OA8%B z{}xQN3MF0Q*JuN9)G8%6^A51tienlk=AU>l2000Jb zQchC<|NsC0|9W}g{r~^~X-PyuR9J=W)Zq$%APfXxZ|C0sl|%O2v zN)Zte5xHVyGQd6$$X`*IEfvA1m9xMkKX=b3e!kF56c!(VDPt9KN pLO|vUhdw~w|D#WRKrKOjY6JQ*0XfzFQMLd8002ovPDHLkV1f|K2*v;a literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothes/base/thong_dark_brown.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothes/base/thong_dark_brown.png new file mode 100644 index 0000000000000000000000000000000000000000..918eadef53ef168980945b87570a26ef444b7d80 GIT binary patch literal 603 zcmV-h0;K(kP)EX>4Tx04R}tkv&L4Q5c4wd##L68gh_mxPvw2QW1?|kpu~$23if>A2q>ylY5mG z$Dmbc=x6C~Xlbssp*0ACeju6~nu=ONZX6Yq$iC$~yytsA&i5XWj|#f!bWMY4mF##l zqNLKxiuaW+WO@h^R&}QsOUxzdSYP)@;=BusS)Kd-EWeR)bdVHaS})oqkk)|7%~DbD z9uUyiRRg4RVAM{fmqB_Iy4K(~!MQriVrIZj#%Dkd07|ZnwKmq*Z4=}PAY_=90dlIr zhTw`|vryKX?-U#QGS*T;=)e$B=83V0f<~D<1xkd;W1-*>CrYG)f3WUfq>M&^JUR-q zY+$0+{fIyKovo7{A8SnVMWFk|bw7r|y92eV>wX`*ZtVm-&v0e6{2NCw^$DJ8OA8%B z{}xQN3MF0Q*XH6_YDI88TCVXEzVL~wtq2fva000Jb zQchC<|NsC0|9W}g{r~^~X-PyuR9J=W)Zq$%APfXxZ|C0sl|%O2v zN)Zte5xHVyGQd6$$X`*IEfvA1m9xMkKX=b3e!kF56c!(VDPt9KN pLO|vUhdw~w|D#WRKrKOjY6JQ*0XfzFQMLd8002ovPDHLkV1m8O3FiO+ literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothes/extra/scarf_brown.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothes/extra/scarf_brown.png new file mode 100644 index 0000000000000000000000000000000000000000..a9a51ea82b343f35be70bef62eae6e4500356117 GIT binary patch literal 775 zcmV+i1Ni)jP)EX>4Tx04R}tkv&L4Q5c4wd##L68gh_mxPvw2QW1?|kpu~$23if>A2q>ylY5mG z$Dmbc=x6C~Xlbssp*0ACeju6~nu=ONZX6Yq$iC$~yytsA&i5XWj|#f!bWMY4mF##l zqNLKxiuaW+WO@h^R&}QsOUxzdSYP)@;=BusS)Kd-EWeR)bdVHaS})oqkk)|7%~DbD z9uUyiRRg4RVAM{fmqB_Iy4K(~!MQriVrIZj#%Dkd07|ZnwKmq*Z4=}PAY_=90dlIr zhTw`|vryKX?-U#QGS*T;=)e$B=83V0f<~D<1xkd;W1-*>CrYG)f3WUfq>M&^JUR-q zY+$0+{fIyKovo7{A8SnVMWFk|bw7r|y92eV>wX`*ZtVm-&v0e6{2NCw^$DJ8OA8%B z{}x$0stMB z>e!?@Hpi~-yE@y+F2q%itkxT;3)WT6!Tp_2fE*dn-c%ExY)yZ%Hw4)|53|=+#RZ_f8Z8#7j*Y9Fsxn))P>lwC zSr(<-KfSc3NS*#2S!0?ndZDKz3Vay^?oQygjkPIwIcFQ3jE6?P`u1qhZ)9lcoGj7i z_U5|L(Y0xfUV%FQ{>Oy93IG5A000000000000017-X|sKUXyj8&AEX>4Tx04R}tkv&L4Q5c4wd##L68gh_mxPvw2QW1?|kpu~$23if>A2q>ylY5mG z$Dmbc=x6C~Xlbssp*0ACeju6~nu=ONZX6Yq$iC$~yytsA&i5XWj|#f!bWMY4mF##l zqNLKxiuaW+WO@h^R&}QsOUxzdSYP)@;=BusS)Kd-EWeR)bdVHaS})oqkk)|7%~DbD z9uUyiRRg4RVAM{fmqB_Iy4K(~!MQriVrIZj#%Dkd07|ZnwKmq*Z4=}PAY_=90dlIr zhTw`|vryKX?-U#QGS*T;=)e$B=83V0f<~D<1xkd;W1-*>CrYG)f3WUfq>M&^JUR-q zY+$0+{fIyKovo7{A8SnVMWFk|bw7r|y92eV>wX`*ZtVm-&v0e6{2NCw^$DJ8OA8%B z{}x($+EJx2kWq zpeFbU9(Dq>S|f?5t2wl%JNFlghxL zF|l@{t%p;fMBDu8wLJk+MH4c1G@CvR66{T!$ilghEsFQ9yy?N}$<fj_n+lUfOD>)6 z`aV@JrHVr+taQ1A_Ziif5%J$W9_``oj-31ZpU(b?g(VY25~B2PsZO}oaPn+W;0HN@ z3)e%LmlP*l@mo6Gu}WmuwFl-0cUqlJN;}|pEZu>R!E0UbRlivG{l7Y zG?Zl_Qa*M%Nx@DK_K9=n?>~9==H2^$|Ncd+St1V<6)6ew3kJ#l2LlidVT+u<{Sg@9 zlRRA*nB+2V{@ZB<$qU9QCEUiXYSwa~ep z?`=TK@7WDMiVsLDx|~vX-NV-)%8_PSC3)dK&w+ITT2BfX^eSp4CupwNS{d-Vo+ok9 zllGonm;X(6bupQL`tIA$j7~mIuku`)x+6`rZ9^o4drD=exp_A%&XaC%4Gpbee(*4C zmgVNGb>`QfIc3Q%sA2xVB5*Z(ZFuO!wEp>w3>_Ssn*@y?7VeF^WR$+3$0lIeibPh1 zR?f{aXY@X_bufzFV@YWCII!|%josWlXP-JA2Vag($)L+Bn^sKLWq9{4cakg9H3kKx z-0msUnps@fH%!p#edX{hS#ZY!7KXF75$rlwizYNoV|L_YQ=FpSow@St<^tgjrDFf= z5=59LR;u;f&Z;xXbB}t@e~oby(~Mt@_vCGux+;HcnZAahZSG0)hR;#|?(<)++hNDB zV}|P*<|_LOznj$?k^-A6SR`5-l*$=Q7EX>4Tx04R}tkv&L4Q5c4wd##L68gh_mxPvw2QW1?|kpu~$23if>A2q>ylY5mG z$Dmbc=x6C~Xlbssp*0ACeju6~nu=ONZX6Yq$iC$~yytsA&i5XWj|#f!bWMY4mF##l zqNLKxiuaW+WO@h^R&}QsOUxzdSYP)@;=BusS)Kd-EWeR)bdVHaS})oqkk)|7%~DbD z9uUyiRRg4RVAM{fmqB_Iy4K(~!MQriVrIZj#%Dkd07|ZnwKmq*Z4=}PAY_=90dlIr zhTw`|vryKX?-U#QGS*T;=)e$B=83V0f<~D<1xkd;W1-*>CrYG)f3WUfq>M&^JUR-q zY+$0+{fIyKovo7{A8SnVMWFk|bw7r|y92eV>wX`*ZtVm-&v0e6{2NCw^$DJ8OA8%B z{}x* zuHgYfkB}%RA|a$Ju0V?D;Q@FKdKv^&r$a)iB1Oi|hp0?7xw-W^8?x&!m|x|@ADa1l zXS_4JfFKBhAP9mW2!bF8UyYTb4frU%ZYKtSFd6{>&Mt4Pd{}j4SMK;;&B=2rD}XC1 zD*%OnEv3%^6!R)30VqU{e_hY@u@WO7j7ABEc@7wcQw+nY_MC||M>b{#cbp&lUJbri zOBH6(5GlO?%~m_{U;pLr%t8L<`ElC4Dy7c>I<78GV*t2+c+{TX+uZ>G9G?8Hqm(&p}_b45{!S|CeAfT9g38tb`ouiJ@v<<)Gp5e0)p9p3A9Vz1sn6buqoomX!p z=IvJ(r?KuiuF0et)Rm%PG=f)eq+Uw}4xtK_71jbQW2CN*kAi`%DNErr2l!qMQ7}NW z)yDbJ!R(EmA05OL8oGNpYItOglMon&Q*8O`2&2(|BG7lAVxLf(8EIXdJVLa8O&n7ge5yS{ruBW({s0?Fw>&;?eP6dfz?Q-VSY~~n?+>u0Z~;_?;ncXkZ`vOq f2!bF8!a}?Q)AUCspn#7j00000NkvXXu0mjf?qKAq literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothes/over/shirt_burgundy.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothes/over/shirt_burgundy.png new file mode 100644 index 0000000000000000000000000000000000000000..5d70526bc15daf8ca732f4578adfb2adfea5d669 GIT binary patch literal 738 zcmV<80v-K{P)EX>4Tx04R}tkv&L4Q5c4wd##L68gh_mxPvw2QW1?|kpu~$23if>A2q>ylY5mG z$Dmbc=x6C~Xlbssp*0ACeju6~nu=ONZX6Yq$iC$~yytsA&i5XWj|#f!bWMY4mF##l zqNLKxiuaW+WO@h^R&}QsOUxzdSYP)@;=BusS)Kd-EWeR)bdVHaS})oqkk)|7%~DbD z9uUyiRRg4RVAM{fmqB_Iy4K(~!MQriVrIZj#%Dkd07|ZnwKmq*Z4=}PAY_=90dlIr zhTw`|vryKX?-U#QGS*T;=)e$B=83V0f<~D<1xkd;W1-*>CrYG)f3WUfq>M&^JUR-q zY+$0+{fIyKovo7{A8SnVMWFk|bw7r|y92eV>wX`*ZtVm-&v0e6{2NCw^$DJ8OA8%B z{}xc&${}Y_%}OdDNE;@ijLrfr!J;T50K_2cJ%%y~M4DKv zLjsJPQG$|0neXH8O&B1hC9)gasCQ7Qc>6!-A@mPc8LASWt{wZiEH< z*8K=|!h&B6-GvvybOn!Y!Ea@MALIqc!OXSwSupi7@%Mng4~7K$dw@CK6N@+T1v`=m Unt9qhP5=M^07*qoM6N<$f>S|f?5q$_l%JNFlghxL zaenGVOAls8iB@~_j}9W-!5tAf3&WNL3VL@g;$U;?Nw{+8Zf~bk8SidEY43w(2@fw; zh?-ry6?KEF=>cO>ZsO7moxcIQ8g%x9qHwn-}nB%$grIsyhmGR z)3n|xA7&QJ*A^G43)mI;DE#P5rED$ZCu)xtA5u)T4L+JC8hv`5u8qc>xtnB9UQhF$ z6SQaHjdSZFpH{CD-=m`Kcwf)a7Hx>AEFt`!~Pn?>sGX zookxKv52F`G=2rvf7l(ZZ+ju$E34Dt@8Y*eyS`WV{;gbg=RSY?-lFv;Qo1LAabg+Z6XF^Y99&yjI;FoeKQ}8m zDdGG5g)vT6j}K({SQy*tYF^ls-sY=Y=c<}-D<5qn6{0KASX=4g;R)28vif-nkP?_U#$SD=}C?7O!M^AVgQ-K${@wa%D@O@c>%FBlnqK@8jQ?faV8+!kdcW& z07ypxab`OUSUd~J27v@12I+^K##3)iCY<{~PN*vi5lTPrBOvt3Fr*zA7N;e5j^#_p;jD>2S^qmCc_S_}!=M;vF0T5B&B2zqt! z)S)$NBH2%zXRu`G{2=RM?XZJMh(YO<=mMoRMGO&BCOYr4WBzks-K6Y>6c<-XPZ5SX zjY|osDUAsXHBVi2n>W?4bKGb#OcDJenV{A^dAIBBJIOs_pZ_uiEd6uN@tjkkNyx@P zR-GsFf<8?#J0EyxrOK`5*rzAm+66)mRK09nzb13m8W-PZ&n8Qk6}FUC?O@26mm8H6 znPYgw%>T2EZbW3znNMXO>f#t)@6vgl^{ryf>s@+39&GCSyy^$jfy$6iA>BK!C(H>~ zoi6=0W!iBLm%NvImDyhg+gB_-Cw|IlN$tE(d#&PsOl7P+zkl&PajgeQBKKE)XH{~N zmSMH_-^=y&)IEkSBe`Jy3DdV)FzocKW~h3f>yTk~k>SOo?F>O73`GnHEzAqc?WF>CdX0;2Y%n@XzeS0$!8nzWF4Tx04R}tkv&L4Q5c4wd##L68gh_mxPvw2QW1?|kpu~$23if>A2q>ylY5mG z$Dmbc=x6C~Xlbssp*0ACeju6~nu=ONZX6Yq$iC$~yytsA&i5XWj|#f!bWMY4mF##l zqNLKxiuaW+WO@h^R&}QsOUxzdSYP)@;=BusS)Kd-EWeR)bdVHaS})oqkk)|7%~DbD z9uUyiRRg4RVAM{fmqB_Iy4K(~!MQriVrIZj#%Dkd07|ZnwKmq*Z4=}PAY_=90dlIr zhTw`|vryKX?-U#QGS*T;=)e$B=83V0f<~D<1xkd;W1-*>CrYG)f3WUfq>M&^JUR-q zY+$0+{fIyKovo7{A8SnVMWFk|bw7r|y92eV>wX`*ZtVm-&v0e6{2NCw^$DJ8OA8%B z{}xxhsqb~%1db8lF0xJx+bv-sJGyp(2 zBvjQ;IW+~70O;TY8>`sV+#5NuC5mMLsr3y*ep~bN1`WukSD3pe%Wgj$5}*=I7eX~; zb49ZN=u8wgRx4^$T9bjj0bAW`jfqf+hI|@Oh=zy|)SnyLOFNNM31VV1=rX8=Pd`h- z*Bg%)soK*{s6<0yWf7ZN0pCCT!*{;BvlwXof0p?2?WfxCD7k=`*bD&3Nb8X1lY03; z>q$f+jfjcO5L==Ky8r;~r`jxSMmQuOBdwbTO!G3*y5+#w^6!82iLH$|-`!cP=qOyy zOi>h0Ri!oA&~dk_EVe{ll`qvdg8i>bwm}6G5`z0WXqMMc z`gaAu4xB!?DcE3HiMQ7L43_FFDaMgCOjLwO=UtZPbnS1(2Pa#rViMEX_<~X=WOueE~ED8!$1}r5DbpR}k1( zMPX$T*|}Ma_64v!{i~sKD$xwH$HQ)4Re-$5n64JE&g{^1@ZCa+>COCYDFa5D*%AP-cAzOv+M&yGy3d^ z9j6iLdQGpQC|d|b8c|@JF55jPdAsT^+L2Sq{scwYvq4A*A`)ptQ?Nl_lk7cy59haG zyS#%yCEEVS18V(!ftz?iZ#?e21P*!z4gxpv0+sg#!1?Lb21aTD9dxO~5&+!2`-9I` z1IqQ!pElga3w(6V=hG_&-=7sgIwKik0PKIm@|2-LH}4H)vV*Vx%v5C~c$-Dz4y*uJ zo502xGSa#^B2+F^IC+bE<-RvO%s0$pOVn~nl)Vko0n=^Hj&fg{9mcCQE7zRO3kgAI z4N!?za==y`=Jx}wG0~J)%J{Li%~1d$A*e@T;bL1X*ACcyf8Yiyx0l)gzDzhI7+hS0H=5W8#|a7>q4~cWkcS+xx-*wT9mK@?AotZ0B6s?E77 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/clothing_full_toga.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/clothing_full_toga.png deleted file mode 100644 index 342813e81d2d20b40f0d44867094716266655ad9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 911 zcmV;A191F_P)EX>4Tx04R}tkv&MmKpe$i(`rR34t6NwkfA!+MMWG-6^me@v=v%)FuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|?BJy6A|?JWDYS_3;J6>}?mh0_0YaZ$Bv4xZ!d9zMR_#dwzYxj)B{QZyOh6N%$YH!R`};@M40 z=e$oGW)(>xJ|~_u=z_$LT$f#b<6L%F;F)0~mzgIH6N}{@mV20043&6>II5@`3{AqH@0<3Mm1Xg6*9``EVICxHJMxYD}*dJCBQB)!?y zqDR2+HgIv>)#N?katDY!>5?HilAoqfDgp0j^i2g|hR!q{2u50022qOjJbx002ELDO4>OTQVANJs(UsGh9MC zenllnNJ&&vQ)6OaZ*6LQd3A{oE?cMaqjFH-~+h=qCG%~7B`04_2ho0B;MJJg`p;mC1j+KI75F< zP`@PJjj-1_u^u`S2yX^p%u7TC1VU0AuIlB~BuzIDHM|B`%nq`lG{s%AA8kfE4FE6d z%66ouNhAQo*3N#IzsdSW&*nOi{^Bq<7`7^M-T?5_Mevld3}j-jG`9zU9t_`B{Z!in zz>=P27o@Z1&VQ9V_aGd0DWdiTR&}_@i3&c1^~}&upbQ7)PmQ@pq$5m zWAt_vPy!Dx0Ug^1tQ7GPpPMnT^t7@|5qmky=!>he4WZ!`06u#{;|xH)CsdvnlZC7p l{{;BuE?oqi+?@Ka`UVW|8!|LVp&$SN002ovPDHLkV1mY0nppq< diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/clothing_pants.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/clothing_pants.png deleted file mode 100644 index c417ca507c683d6e878b09cd73b44708883bc31e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 968 zcmV;(12_DMP)EX>4Tx04R}tkv&L4Q5c4wd##L68gh_mxPvw2QW1?|kpu~$23if>A2q>ylY5mG z$Dmbc=x6C~Xlbssp*0ACeju6~nu=ONZX6Yq$iC$~yytsA&i5XWj|#f!bWMY4mF##l zqNLKxiuaW+WO@h^R&}QsOUxzdSYP)@;=BusS)Kd-EWeR)bdVHaS})oqkk)|7%~DbD z9uUyiRRg4RVAM{fmqB_Iy4K(~!MQriVrIZj#%Dkd07|ZnwKmq*Z4=}PAY_=90dlIr zhTw`|vryKX?-U#QGS*T;=)e$B=83V0f<~D<1xkd;W1-*>CrYG)f3WUfq>M&^JUR-q zY+$0+{fIyKovo7{A8SnVMWFk|bw7r|y92eV>wX`*ZtVm-&v0e6{2NCw^$DJ8OA8%B z{}xS`=>h<5pWml? zzbM~tH=aoAW`3%d90VsVR`m%>Y2I+&)SDjur3ajr);-k_NYmw21-amu4+?uQ|HDr^ zN2KX!f6o(Z=8E!yPrDgyQU5>1MkQ=(xS`0F3+hE$M2J2oKIKAXG2nAO9V< z_xCw(Ecwnab`a`cHbl+tBx>XjM$)$PrrYg8+*Lj%s^rSMJ0q3kYGD}wU@qqY0JhT) zR6{z6fB&)aIF)>3lau3PFVoXtD{3u}1rHDRxl9KD0CK@?s3dj1CEZl_@Ma-&7KmHt z>#!mm83J+3TpdbbsCs}d>-{)F0}wY4{KrP-v?(jWad|+OA&~iLFmh8g>YNVU9{_}E qtzRq{${^_S@(AVto!0t9@%#eibKOLDRoYen0000tSP)EX>4Tx04R}tkv&MmKpe$i(@I4u4rY+*kfA!+MMWG-6^me@v=v%)FuC*#nzSS- zE{=k0!NHHks)LKOt`4q(Aou~|?BJy6A|?JWDYS_3;J6>}?mh0_0Yax4U2e#cy`mO zbKWNwSy@(z&xt1ux*+i**ASCLVd zIRb{Zfs5;|rtATiJHW_OT{dJ#^3xQGMd1C6z9|n3-vR?`Zf~7^oIU_q>T3B0I5-3* zN|e3s@$UZK-u^w)>F)=AmvXE2=|ctp00R0+L_t(|ob8xTYt%p(#-EjdvVWL$wT33p zN})Xn9!2O$dh=Y5J(TUOP>SEfgCclS6#5Ygdg?`}z4TO2uu$DXwnV#2vQ6TyEyhEA z)5#{gsb;rP_x-_=WM-J1=b3ljnFL@MhG7_nVHk#C7=~dOhG7_nVHk#C7>4;xR#%q& zKdH-tZ=YWIm$Dv2mK@gJVWbUcwEWRF;L+n9C<}A5zU6gL&R+%q(7ok#f`)S4`qp+% z?qqdk*{_rZnwAa6^%DPdsk-PF3;9U-lc&!j{l=9K63gpAS=-pmEzHgObY0)t&MnN% z`T#;ktZi(@4unKk$^v9WKPL2X00<1T?IQ?LiX=#?8z#2voh|_qCtqpS>Dsds`v{Kf z1;VGNCS$Yx>dLY|Jv9jc*f$PB0;v!AH*E0$aQ~*#I|r<7Z05R+i9^>^6bpG6brVg? z#_nD%VgiY8G%f5K2LKSvJpH;6q6A%2)96d2-EKokYSd3W02p->x~4*i5{$YDAxhZY ztD#aB!Fs2erzo-Qqd=VFdWg#j7lGaWo@~H*AQ2>l!dMo+yH^7M6bpGw=;NUrK;@OP z0B~lMQ8x!Myq+Ao$Ad9I7D3OtrUrr1*fDF~0XIDu>=lDl@19VLd21+wV zLa$ZIXf!SCy#E-4{JwDz5?3tbgB&0Wj>`*!=3ez-dIOBQ85%ex#P0B==kB&ZGy*P) zM$<}fK->5n>ZEO*UTxRICB(i3(TNV06EX>4Tx04R}tkv&MmKpe$i(`rR34t6NwkfA!+MMWG-6^me@v=v%)FuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|?BJy6A|?JWDYS_3;J6>}?mh0_0YaZ$Bv4xZ!d9zMR_#dwzYxj)B{QZyOh6N%$YH!R`};@M40 z=e$oGW)(>xJ|~_u=z_$LT$f#b<6L%F;F)0~mzgIH6N}{@mV20043&6>II5@`3{AqH@0<3Mm1Xg6*9``EVICxHJMxYD}*dJCBQB)!?y zqDR2+HgIv>)#N?katDY!>5?HilAoqfDgp0j^i2g|hR!q{2u500KfuL_t(|ob8&iY8ycihW`@>2A#0-2o9-I zqzb`?5J+oCCqF=NI)N}LQm9a2Qn;`S3xPWu=M7W{tinYgMIOLK%8({tqJSlCH&T3f zU6_&Adn?=MWS#eJzUKD!R(m%)JF_!`0ES^0hG7_nVHk#C@`h)2ym|3l>G$7Ge#FKk z!JOY@*6+KE!aQI07~us-`vcO(v)N=hC;|YU6c+#hXL5wTkk$$2ZLe_$0{CeCDC!F2pZgG*} za2WRiq-9<3-=}}Z?JQ`X=nwy2p8_OsDCAhX)VF_d= z{qy|CQV$q}BKZOwx7)EkSLy+wknxI8(scNt|6edm)+!ad56DY8915B5bhz6+@~l3< zG=nVT=~Z2wNtIrL`lu*c4vJGby|jJA#AJvFg@i3-rm<-Ykd#|}0EN1ArBFFb36XCK zr?<`6AGlr&*ApRPs_jdQQ3{Gqm&6i73&Ai9!!T}g2`afZc9z%iuK)l507*qoM6N<$ Ef^8q=*Z=?k diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/clothing_skirt_with_strophium.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/clothing_skirt_with_strophium.png deleted file mode 100644 index a9a2bffafd7fe8fe689b3273aea5e6bc03f2fa58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 826 zcmV-A1I7G_P)EX>4Tx04R}tkv&MmKpe$i(`rR34t6NwkfA!+MMWG-6^me@v=v%)FuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|?BJy6A|?JWDYS_3;J6>}?mh0_0YaZ$Bv4xZ!d9zMR_#dwzYxj)B{QZyOh6N%$YH!R`};@M40 z=e$oGW)(>xJ|~_u=z_$LT$f#b<6L%F;F)0~mzgIH6N}{@mV20043&6>II5@`3{AqH@0<3Mm1Xg6*9``EVICxHJMxYD}*dJCBQB)!?y zqDR2+HgIv>)#N?katDY!>5?HilAoqfDgp0j^i2g|hR!q{2u5002BtOjJbx002ELDM&3JR4o`=G8%6^A51ti zTtYg2MI}f`NmNr)V`5-$ZEAgab%sqXfqi+NhK~+t3)GJHf7jkX z(V9yH(k5;ARYZZ0aRZ>MtE+1!gVO$MZT|$|9@aW%H_q18^%cc{7v1TVYH>3lyS6oR zeQLo^E(59(a2EjIRl2nToB%9sVYjOQSRhLwfK5f!LVy7t=O*K4!>5W|svle-q>g^> zIi5<-Lw!OhfD=fw4<5xcdV1)E1(oulZS4p&2M-7Ej8dck4#0CrJ1@dGlz4Bh>8`wo zC0?CL)1$EeN<%APZJi+&<%6|#3iE-S*?Tw_B#_Ivj#|LE6(DNZ0%zeAb?Ew7;0Z1c za1$U*(HP4!Qvy&JaO4&PaD)(99qtLw+~0^i~hvG6p>WdHyG07*qoM6N<$ Ef^htFc>n+a diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/clothing_thong.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/clothing_thong.png deleted file mode 100644 index 71d3c8c115449723e215ef07101e0cfdaac336cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 848 zcmV-W1F!svP)EX>4Tx04R}tkv&L4Q5c4wd##L68gh_mxPvw2QW1?|kpu~$23if>A2q>ylY5mG z$Dmbc=x6C~Xlbssp*0ACeju6~nu=ONZX6Yq$iC$~yytsA&i5XWj|#f!bWMY4mF##l zqNLKxiuaW+WO@h^R&}QsOUxzdSYP)@;=BusS)Kd-EWeR)bdVHaS})oqkk)|7%~DbD z9uUyiRRg4RVAM{fmqB_Iy4K(~!MQriVrIZj#%Dkd07|ZnwKmq*Z4=}PAY_=90dlIr zhTw`|vryKX?-U#QGS*T;=)e$B=83V0f<~D<1xkd;W1-*>CrYG)f3WUfq>M&^JUR-q zY+$0+{fIyKovo7{A8SnVMWFk|bw7r|y92eV>wX`*ZtVm-&v0e6{2NCw^$DJ8OA8%B z{}xI z+Wrd=5fKp)5fKp)5fKp)5fM?^WlRtE>l>58azK-s5M)sAH=`=Hh;kH z-@qDx3kD-)4?zC~((LrChpeeXPhRA6Xg4cLM$>s40CaoR*N0&^F)xBzyIE1D=f~Ig zD?M?oQL7r~=Zurxntc~=K@>%9?*cNKx*dQY#BK*LiC^3fVCUe-?EnT(L$?E%&1UA4 z;CD1?RV9iA0Dufa0DveK=HGRDvEMX)@e=^Ly}P9yx<=#R=K*Yb5@ql0WqmKHAg2-% z0`*b|kEX>4Tx04R}tkv&MmKpe$i(`rR34t6NwkfA!+MMWG-6^me@v=v%)FuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|?BJy6A|?JWDYS_3;J6>}?mh0_0YaZ$Bv4xZ!d9zMR_#dwzYxj)B{QZyOh6N%$YH!R`};@M40 z=e$oGW)(>xJ|~_u=z_$LT$f#b<6L%F;F)0~mzgIH6N}{@mV20043&6>II5@`3{AqH@0<3Mm1Xg6*9``EVICxHJMxYD}*dJCBQB)!?y zqDR2+HgIv>)#N?katDY!>5?HilAoqfDgp0j^i2g|hR!q{2u50022qOjJbx002ELDO4>OTQVANJs(UsGe}5D zTtYg2MI}^IQ)6OahD|MRZEAgab$d@L9SCuE&H$fR0UrkNoe=@z#IVJhh&l=iD*Xf&erBk*%%LgmLP~{gm(Z~XAw~Y zfImqT2y9HaJ6#)gm|B3WEIETUWSAlT=kqvGwH&bKpX{) zxA4;MPGaT)koCuT?0i2i#;6--NBXel+Li_OBteV?|ub zIUmpUmsr*C3P9_Kv~dQYS}@>QF`)~^_!M9=N*4hqgG>KaKP&GSzJuN-+W-In07*qo IM6N<$f>JP#bpQYW diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/color_palettes/base_palette.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/color_palettes/base_palette.png deleted file mode 100644 index 9aa8d737c3c77198ea9266231b03275ab574cc0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^LO{&O!3HER_xwu&af*Z7ofy`glX(f`1bVtShH%VG z{_^3&pYw;$9zAgW{OJQA`uO3q2M!%Nq@bg6pdca6p4nPkxS7LTo7tXSnwg!Q{qQ&T vdWj!9cS^AAxFPAqRU+B)Q$o_^iLN9=TsCKg{C*dGpy3Rju6{1-oD!MnAmtPE0&tPG4mmKP99L)jqLXfQH^#X;^dWMpCx0Mb!F zoY~F-7S95*K_CH$LHc1dnxzcP3=9+48CZZS42+Bo7#BcH1?ga205NF_kPQM%Ky#SD zDuXO7fGnskLjwbl?CJ(Z;ox}|8bGFlr;B5VM0j$@gR@VcJrEb2B%EOUBxUl0Cr=+e zd$8l*@%hco&E4JIK(e{{@%z7rooem~1sR{z3-&!{sPqF&U95|h`g8Ai|1wgYIJYD@<);T3K0RWliG2Q?G diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/color_palettes/gray.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/color_palettes/gray.png deleted file mode 100644 index e78e7ccc4191ba596e47f9296c12fafa3777780b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^LO{&O!3-py1n~ucIK@HkP7LeL$-D$|ECYN(T!FN$ zu4ag?M6{7qzOB5Eg>j6NRh_GF@l0 ze_@mHj%7g2!X-g|!3_T~fSvsvU7)nIr;B3<$IRph51u@F_E0z_DJ}7NYD(&3aRDX< YHXVjFQ~Bjr0F^O#y85}Sb4q9e03f+Xp8x;= diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/color_palettes/rot_green.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/color_palettes/rot_green.png deleted file mode 100644 index fae2aa175467a58fbd8bb323f2e487e460e26279..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^LO{&O!3HER_xwu&af*Z7ofy`glX(f`1bMnRhH%VG z-ePw7=lP>2k141eIep;p`GX4DswWN{I(0@t>CEvB*?$w+>f-X)^6bRe`0Ucy96j~g zjBn2~E+{ZC=J-%#v}E}U1CGyzMja=jjTji>^*JkEdo3;pn$FgTe~DWM4fEKxKg diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/color_palettes/white.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_clothings/color_palettes/white.png deleted file mode 100644 index 8fc0b6039c59390e76097d14816ef2ed7ca88a25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^LO{&O!3HER_xwu&af*Z7ofy`glX(f`1bVtShH%VG zzOy;+RehOX9-Ew;9a~UErtvTYsIylHT;4nfXgGtXtDnm{r-UW|oR22j diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_eyes/color_palettes/red.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_eyes/color_palettes/red.png index ff2b3bc34a6fb5ee210de40b5c92804b71c9067d..57fd65050a8d6015ca919af0ad33700aa01384cb 100644 GIT binary patch delta 47 zcmcb^e200%Rz~$7|A9b#wfGwc44O88RPmZqr>6*24ezopr069Js An*aa+ diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_eyes/eye_blind_left.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_eyes/eye_blind_left.png index a8d655532db635cb9601870d5a6f3ba24d8ecf5c..ecac8cb1fbefbe6104fba6f5538de36f704f7831 100644 GIT binary patch delta 106 zcmbQh($BJCEn||er;B4q#hka-3`Gwp2)H=bDCqdD*x0}(Gq2HiVtZS_nUdSNKcgQ{ zRtcT@?@Z6u&)?-47g~?7>*qHwPJ%+;yPB72OoHCn1#6#b_7o_O#YB@ zTV-zccZ>CPcbOR&>?b_gdc63p+Q!oiNZ^CLxq*+w29@*Mn?a(Uu6{1-oD!Mgn72(UQTDDbFXiRfrsvAC9bx>Be}OOo5cX}6`; ztE^o0Wuwu0>-z5u3bP0l+XkK DGXMYp diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_eyes/eye_small_wide_low.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_eyes/eye_common_high.png similarity index 69% rename from middle-earth/src/main/resources/assets/middle-earth/textures/character_eyes/eye_small_wide_low.png rename to middle-earth/src/main/resources/assets/middle-earth/textures/character_eyes/eye_common_high.png index 32e2c36136d72c91a994e6836dc06bcbd1e46ac0..2321dcfe70f73163fc7da51fc101146af22cec61 100644 GIT binary patch delta 106 zcmeBS>1WxnmNCiK)5S5QV$R!ZhN1@)1Y8_z6nNBEZWQ1xtY9-^<>w7JQ*t}^XLPdX zq*Y$>#^--O{UXo6khg)m@V#ByDlc6o1|)F(Cu7_z@gK9c{rn3O^>p=fS?83{1OWKD BC6fRE delta 103 zcmeBY>0#NhmNDMT)5S5QV$R!Zii`&gM4S))TCu@Oa$RfYjKlc~%&oHT56ISN7_8l> y;u*TMf9C7DqAGp{hCdGS#k-Hi^D-a-i+8L%YXtn%9zopr0J!TVw*UYD delta 102 zcmZo;>1NrmmNCxL)5S5QV$R!Zii`&gM4S))nz6xBb6#uKjKlc~%+0#_2W4wC4Ay@1 xp0w&zsr}2xXW!W}FcdVXTsDm}Wk3Q6yZIMciKNW=r>_VS^>p=fS?83{1OOpzB%uHR diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_eyes/eye_small_high_wide.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_eyes/eye_small_high_wide.png index fd2f8ceaf81731971316eb9a0d2db383e445b7dd..6a0d3947d06e784bfa4e0a4d1622f0ba03a91338 100644 GIT binary patch delta 52 xcmeBS>0#OMfKi8`{=)G)^B#sXGavzrx2&Ib3-}e3RO|zZdb;|#taD0e0sywl59$B_ delta 52 wcmeBS>0#OMfKlgw{ujgT$zQHAAOnjxtT%27_(?x_KOH3O>FVdQ&MBb@0K>ZwfB*mh diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_eyes/eye_small_high_wide_emissive.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_eyes/eye_small_high_wide_emissive.png index 49843186ca07181b96479f603d96f7954339fbff..f6649c290d755f5e4a072247130ea28c2a20d0b2 100644 GIT binary patch delta 50 ucmeBX>1NsRkWp)n!pSc@;k*n;AYnWIqE#X(Pr`)*L86|nelF{r5}E*5Qw=`= delta 50 ucmeBX>1NsRkWtIs!$@{0#OMfKlgw{ujgT$zQHAAOnjxtT%27_(?x_KOH3O>FVdQ&MBb@0K>ZwfB*mh delta 52 wcmeBS>0#OMfKi9xkAr;i?ql)13`oG@9V^co0Y9}z?F&Jop00i_>zopr0D1on`~Uy| diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_eyes/eye_small_wide_low_emissive.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_eyes/eye_small_very_high_wide_emissive.png similarity index 82% rename from middle-earth/src/main/resources/assets/middle-earth/textures/character_eyes/eye_small_wide_low_emissive.png rename to middle-earth/src/main/resources/assets/middle-earth/textures/character_eyes/eye_small_very_high_wide_emissive.png index d8b61cf46e882d2de6660412cbb1693dd0009e19..49843186ca07181b96479f603d96f7954339fbff 100644 GIT binary patch delta 50 ucmeBX>1NsRkWtIs!$@{1NsRkWs6kLFKY(oGAkmNZ8H4$Vwz-&Od!ckf^7tpUXO@geCw=&J5%L diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_eyes/eye_small_wide.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_eyes/eye_small_wide.png index 6a0d3947d06e784bfa4e0a4d1622f0ba03a91338..064fc1e13a70dde65534b649aab73235bb543e4a 100644 GIT binary patch delta 94 zcmeBS>0#NhjWNuSvB7|W`QVQg26GIqGf5RhFgr55N!=k`e`*HHB$eFV*IrqqoqzrA poh<{ypMw_9UQ5=QG9ZD3-Rx891pHnd%=rxx^>p=fS?83{1OTW?B3}Ri delta 94 zcmeBS>0#NhjWJA-@qmGd^TA&$HdslnYt5W-IA4LeRrdV>*%}RlwHsADLzni?d|g*m p#m~S{f8qF@c@M*x8IXX*Th>pz1^fz1D)xayJzf1=);T3K0RY26A=Ll? diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_eyes/eye_small_wide_emissive.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_eyes/eye_small_wide_emissive.png index f6649c290d755f5e4a072247130ea28c2a20d0b2..d8b61cf46e882d2de6660412cbb1693dd0009e19 100644 GIT binary patch delta 50 ucmeBX>1NsRkWs6kLFKY(oGAkmNZ8H4$Vwz-&Od!ckf^7tpUXO@geCw=&J5%L delta 50 ucmeBX>1NsRkWp)n!pSc@;k*n;AYnWIqE#X(Pr`)*L86|nelF{r5}E*5Qw=`= diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/base_palette.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/base_palette.png index c8c57b3f0887cccea33188a5b13a3ef2f473ca6f..e12cddcca015660e1dba2168650a9125b72bee0e 100644 GIT binary patch delta 28 icmd1Joe(C@92^nSCuTT*ddLO_An?}@hvDGmrnWz!50`S}W=xAoyP>;yyLe@wM{`eexYNp0wgTe~DWM4fksAq& delta 29 jcmXRbn-C|FRF%YVgH?2C`|V9{7=Xaj)z4*}Q$iB}rpF4p diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/dark_green.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/dark_green.png index aede7d2f593496856309c07f861910000baab9e1..1598d78315da4a60f35d6057fe9667bbf9243aae 100644 GIT binary patch delta 31 lcmaFK{E~UYB}Vc2Jy~XHVw}#abT%>ofv2mV%Q~loCIGk|3V#3q delta 31 mcmaFK{E~UYB}Vb%J2#m(h%I|75%ZD(2s~Z=T-G@yGywqFbqrJh diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/dark_pink.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/dark_pink.png index 7781a6b264b3e66a718a24497dc686895b8d61a8..a7e0d30112d034bbce8550f52de959d4409eb15b 100644 GIT binary patch delta 29 jcmXRbn-C|FnQO~%*h!S*L}~a71|aZs^>bP0l+XkKlynJ} delta 29 jcmXRbn-C{4aaJqCk)NVV{TZxX8Gyjk)z4*}Q$iB}qDu+e diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/green.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/green.png index 8cad4731f278951b6396797d4cfcf1bee3e77249..3f7ac571700faffe91cdc1f48d4c918db0fc96c9 100644 GIT binary patch delta 31 lcmaFK{E~UYB}Vavsswv)G0r$<&s_{a;OXk;vd$@?2>`2{3CsWh delta 31 mcmaFK{E~UYB}VZT%U3w0iY=Q|^!+mf5O})!xvX diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/grey.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/grey.png index 7bc22c3e70a7540af865c2d31c7ee2bf21950b1f..9e837d468d6800fd8fc01053d987eaa78ef37c63 100644 GIT binary patch delta 32 mcmeyw{E2zPEk=pH&H#pOvqU)@1l&>?fWXt$&t;ucLK6VKKMGF( delta 32 ncmeyw{E2zPEk=oL+h#EA2oznK@M;bPZ!4!j+v|nZ;CPq2rwUb;b?v9zmvv4FO#r`o3k?7O delta 31 mcmaFK{E~UYB}VZ@bEaBv5M6dAGKZT12s~Z=T-G@yGywq2Y72S* diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/olive.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/olive.png index 8fcd507a5a82b6d7c50cbe9f9dbf21518a4f617b..74a87ddcbd76247c3c75a2fd2a0e965810c57e0a 100644 GIT binary patch delta 31 mcmXRYm=GrQV9J9t3=AKpNpKh*etDDu2s~Z=T-G@yGywqBHViue delta 31 lcmXRYm=Gp4;p*+P3=E%qC6<0>{M5++1fH&bF6*2UngG^p3`+n2 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/pale.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/pale.png index b19f09dced39cae9a9b496f8ccdf84edd4428478..cc9384e59f57e5c23622049acb3ae24a56e00d35 100644 GIT binary patch delta 29 jcmXRbn-C{q7@))OQ%!>7#-eS<7=Xaj)z4*}Q$iB}l$Z&} delta 29 jcmXRbn-C`vSzE&J>#oGoX%WUP3_#%N>gTe~DWM4fr>_cV diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/pale_green.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/pale_green.png index 01c018ab92a0828b6be283f836ddfa6c495ba179..2ebfd75a62f6ac9338b0c3fa30989a2542a7767c 100644 GIT binary patch delta 32 mcmeyw{E2zPEk+4@Ckck5k3>0Uw|aLl0D-5gpUXO@geCyM!V1s; delta 32 mcmeyw{E2zPEk=p-`~-&MGewv3O@ETY00f?{elF{r5}E+guM52Z diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/pale_white.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/pale_white.png index 12b943a416631c3621ece175c27238f1505811bf..e067d29d272e9e64ae9f4612ef563f9c0c81fb0d 100644 GIT binary patch delta 32 mcmeyw{E2zPEk+4dqhAakXGw4@t$3%!00f?{elF{r5}E+goeQx5 delta 32 mcmeyw{E2zPEk+67cqfLBf#OR!x`UM%fWXt$&t;ucLK6VJ^9pnT diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/pink.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/pink.png index 785d7eec1bc5cfdf2f32dc88af8e76ea74c1ae68..adddceca2164c78fc8f66c36c37b0ae06affe8db 100644 GIT binary patch delta 29 jcmXRbn-C{qgTe~DWM4fkzxsx delta 29 jcmXRbn-C|FRF%Z=;-UD`b2%%IF#v(5tDnm{r-UW|v;qrJ diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/red.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/red.png index 7719f848d958d313d77c39a149c0b7464f5177c3..0218f8d48dd42f55caa4f5ce932f10875fd5f684 100644 GIT binary patch delta 32 mcmeyw{E2zPEk=o|?ofv9U1A(N+b)zKcxJ!&9%gS{j0}yz+`njxgN@xNAlcotn delta 29 jcmXRbn-C|lV$ULmqmE)r4MZPaWB>wBS3j3^P6aef=L}1|aZs^>bP0l+XkKlhX-f delta 29 jcmXRbn-C|lbkSUfgSw(inV$VrW&i?DS3j3^P6bP0l+XkKoDT_= delta 29 jcmXRbn-C|VT+zXBZ>rc*)#V307=Xaj)z4*}Q$iB}o`DJr diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/tan_desaturated.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/tan_desaturated.png index c170493bf84846fc5a6496cd335a5e88524a213b..5383fe6793529458d679d58cada62f517d208f77 100644 GIT binary patch delta 29 jcmXRbn-C{qbP0l+XkKjR6S| delta 29 jcmXRbn-C`vRa4Axb*|`A&8!*H3_#%N>gTe~DWM4fnlA~U diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/wine.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/color_palettes/wine.png index afcc883a10a14ac9fe67596a8163a40d859140fc..ca4fd52166768d64118e9f556702bd645d9559b9 100644 GIT binary patch delta 29 jcmXRbn-C|_xGj;2gH8TLWnr<`gL8Mlp=3}D{I{|=w$#hywjJtIJ$P_A(kl23Xpgl<{oh8&Va$=~jn)W37jT6yhuJZ50s}mo0kKTJg v$+pQC%UIpf+qbp4BattbDcSZr%TIFwVD?j2hQ$T600000NkvXXu0mjf`e%A! delta 197 zcmV;$06PDk0`38jF@LB@L_t(IjqTCD4#7|q$MNs2E;Rke1Jom!j1rrec?=$cH|V1n zq_4mv5tCIXn)dcaEsbj+*6LvEXFJLH<(HEqio;gxdqSyFp6ZIqGgOw6$eht?BdBs* zjCB$3bmd~>e*}PxLT%bU!s-Fg8BD9+_tBD3sAYWSaf@lYT|TVg?B_6maXIZ#S&Hp= zlq#)#f|1DlJGhf&t#$yj9|YKrhd*D}4maLjL(Vq~Q4zRr00000NkvXXu0mjfdd*h00ki>-F#&FoGCxBRj7D5)n7$reOmrH+rk3f!iJc6;U)&+6`S*)E3=dB1 l#FTh6H{d&tZcnxeVHco!{z1#Z9><<}v?=rNO2rw`l&DQ1? SZD@MQ00f?{elF{r5}E-1I~Rrk diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/ear_small.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/ear_small.png index 6070d595623d25c579e0800fa12b5ab4dcf8bb52..30fd918b2723c26f40e7ae3746368b077479749f 100644 GIT binary patch delta 50 zcmbQnIEQh9A!FD?BNw%UB@MxM7w_EZqOKHlrH@I7fuW3F@3Hl?g9{mez|+;wWt~$( F69CNy5rhB$ delta 44 zcmbQkIE`_FA!EQqBNv6AFCSdIbLXOq$pr=mBL>x$%!cNB3_#%N>gTe~DWM4fk=YRG diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/ear_small_pointy.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/ear_small_pointy.png index 0af5b78171090ed172d721755da60dc72ca468ad..0c1729902276d45d14e1f6dc6b12cb036b7fbd61 100644 GIT binary patch delta 70 zcmZ3_xR-H)A!GSOqd+UKM~W)v3$~g+`+r<^GKbodervVA`)^4%uY7m$PRycUMa?XC aAqIvU=dEAe^f2gW00K`}KbLh*2~7YobR8rB delta 56 zcmdnXxSnx>A!Fu5qd=X9N1A!oeLME&|Bhs#pPVl*-nnxz#6yvR!LwI~<7Mn#I|d-| MboFyt=akR{0Nv^r-v9sr diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/ear_square.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/ear_square.png index a8c53959b348f6c8cd3e4e4f7e52671839a93c0a..a357d1308d9b27e1ec65cfb11472c9dfa8221329 100644 GIT binary patch delta 78 zcmV-U0I~n00k{E>F#&RsGDJebbnxxMw*Oy`F2+#D^x(u!hTkvl5VYv`i#rStPVB@G kXW|tQB-*v4s2xcF0ElfgbMlRM-2eap07*qoM6N<$g5l{SivR!s delta 57 zcmdnNxR`N*A!F=BBNyG9FB@JS?3~N9KmLy5ZAPCxOid}-a;yRj40-=F{C;q;6*B;V Mr>mdKI;Vst0FD0?qW}N^ diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/ear_square_pointy.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/ear_square_pointy.png index db45ee971bb316cccbdf82fdcb7098c455d7997c..6c7ca0d6b360843f30edadc088671cb2eaba5acc 100644 GIT binary patch delta 132 zcmcb@_=9nRA>*crMt&8H(@t^BleW1TQnN k0YRJ{V^f`~+gT4*hQGDuso4!(cNu`d)78&qol`;+04x$V(EtDd delta 96 zcmeytc!hC-A!FY}BfpTw`^x#3c^4TMPI~DL~+`ub%0}Js2 z7N!y;O`1T6+k_?AU6LY%td&IwlENhqJ>F z&)wQque%*w{4-`8bv;^u>D&ciw%m5)DQ_nW(3l*6#b)1`Pe0Nypfwq_h AfB*mh delta 153 zcmV;K0A~O10m1>0F@JnXL_t(Ijbr?FVcY-zU*9tP`TU;Y-{;p1pFe$I`268L!`qLa z80?xhF)|PWmvbHee|viJKS70~U^oNDk2@y)XJBApVBr;HU|?Wi;I@t>oOqA`)03;G z82){J&G75lEs`}eFfcH%y#4rzf#K182JPY{Bx@c85C8z$`4TR@;^)|200000NkvXX Hu0mjf(*jEw diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/feet_normal.png b/middle-earth/src/main/resources/assets/middle-earth/textures/character_skins/feet_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..94ff46f62991a8a919c84344fa825861b19394b4 GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|+B{txLo9le z|CA-({{KJzzR{nbf95^B|NJ`7eEZsjAAcU&9=_c_U*gRyGeaW*rs>79|Ld!(KG{3A zHj5qj`{V12B$0fe4mnrF{qAztJ|r~FKBCKWon^7T-QHfOWM-WgX3EToyvA&KuOs#t zGL|3wzdm2m&TjA756?eWxAptyAHKObK}3L=p((<-XQRSlNuY}uJYD@<);T3K0RU2E BQ|tf$ literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/barrow_wight_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/barrow_wight_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..bc58d1dfbb08cfac095d2a5f77db9ab8c690cf2f GIT binary patch literal 442 zcmV;r0Y(0aP)Px$bV)=(R5*>Llf6pAP#A`vh)Hw$lO|%M7FuwzLQy)1;Gl?;gN_c~nuAy24d^Hi zf{4~dYe`W`YE7bPs}KiCOi1eDyPfZx_c`x(e&C;yrcD@?S`Z( zBmr0`=OYuq*5)Rz;{dR_vK+06E9$AyXar`xj#;ThfY2Oj%1f^o} zPcwjK7>Rmx3)ahkNuh%pgT##huIFLdHvN}D8W5N3I4NVOpDX=UqJ{Ut8&@|s0Niyt z09@bQW7+mkO50}Qj}n0B5R1AQUU(SkSZOFL_Fu(2+v zE(v-MK1Zbku1=1*JzR`x7neS#k9{eXAk_YLHK^4E0J~>H+Wr^T-aG)^C!f>vUc!_4 kL5jMWda_~4topz74gB4X&?eovSpWb407*qoM6N<$f&sk0S^xk5 literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/brigand_chieftain_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/brigand_chieftain_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..9a4f01d25f1d1aed7b16f01358007dc85ba52692 GIT binary patch literal 934 zcmV;X16lluP)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N&rc%xQUD+|{ba#1KNGZ7*ym0v$M!pZawei!JS|-uIjF9K=blZ`Dz&3HRUiGq zi<~^wX>wqS@N(*v>^u6rv`RU{+WmW%tqIo38#q-TPi7vGO3WD!jgEB#plKnK0~z5> zzQMOI833v!g%Q7BMsT@RG%dt{eVzgPJkKBRnJ@8lZ;x;|?7V$2#<|cnQi*rC+%5o$ z>qYK{zr%Q2fQ>t3qXmW@t}8Oa@8%W&6VXN9I~|Pphos7t;AaWkUMh2JwAUP=*=#C0 ziT>V|TAe`uCm7F=Ew+bB2N#yNSbpsmhDijl*=*v3?KmHv-T-J5Tvgd#D)TW>mFL3K z!(^ic;~eaF5{sva#nT4m@bs_*>n=0m&)Jx^xEX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#Ndy+bajoDEX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#Nx)fB1jU*)y61?8gcuBc?BAi2- zm%H@(o9_MYeZJrKz4tr8IW?D?_Jixg_K}F%H*p?#vvieu%hdgujPe0Gwj&}1g5Y>L zy*@E1@swgFV}yh*1UClZp!=|5QbtFZ%T4>nWHJ(TdVT%uDHVuh_#N93p>I%cnHm@h zj)RdW2)ey}v;e@`n_VpulT!C9n>zrw-au3YBfP4V+5Y@Z3x4<`aC&_n{lB!Uc}+v*FnQtrMA`N z+Io8wAw6a2n*f;4XW6ed00!_W`1iZX#q!8R57J@#NSKzbU({PB#$-}E*E;_IG~7IJ zIe3}#L)UmZo__XHhLKnbtW{>qalSnJsrN2#6sc`B!=pSDF)bU{Q@EZAIWKP%H9R~; mEX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NQ)1083B-rg{dv%&neG^Kn7K<2ux&{7U5K}z`y z(d1bGns$}OS_OdQK@9Zm zmM-262(f94av>(fH&goi@jg*5#Dr&pnpLAX`v8EKPbXyO_;8TLsa5HtcMgN!Eo4)1 z0buNn0+2psad2$EthbXFr&haPV@n9&WU}FlIsNQs;2)jivkN|g;;#Sz002ovPDHLk FV1i^hwKD(! literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/dale_archer_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/dale_archer_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..cca9a60ea1d6c1307d09719c311b4b279e1fed39 GIT binary patch literal 943 zcmV;g15o^lP)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N7%ir5rv zKnU7thpa_3D-CW${0l;%xDecR88_}l5J?45RHQ3uorR?Z1sg3+(pGFfG)_V$6YFZa z2pKwNDxS^doO9pjo)50XAvS;Kt_x5qZvn9Q3rv^EVuEFt<~HwZEmBtAWH z27rcTF&YU0aA9_qYu9hM{{-~Kv1l}~tyJpV0A%Q(SP6}KiH2qU7i3@t)!iRHzt!#l z@Z0VN0(}6d(*nTU?4A8tyf=(Mu@CV4*&;#+G`r*_W7-2+?G6*=6)*Pj_!OpT23H`< zGIMjcdGqw4@0F?47yz0!!>z|f08XkSE`M*K+wJvv@#;;^PEKNOf1^>YkPzc&+6(|u zwYQ-c%WLRK;Ri(3DBm|$0r>QJlk-1cb7}Yk)k+nB?VTO0rbVGpAe%{3s<-_uSWS!h zw=xT?val|}dW~AGhU3`06bbGb4*7hZY$lDK6ukRVK>|26uDbvukzWWQC>FmGkH@)x zB@V#l{0fQ^W@+gaxm=FDT6qwlhC`^4W9-^%v|3JYt&WYNgmD}j!&oMpNqf~M)DYEX zXYen`?g<>n_WYxJbx*7(1qn6ei2;8L2d!am05Eo>i=Gse>TOTdx2@(MX&=JZ!ln(n R=~Ms!002ovPDHLkV1hY~skZEX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NK~y-6eUn{CQ(+j#e@BbZG&p7;6vd0w9XE3ix4x%)r`2!>_>c-7q{?9^x24K8<;1CV1EwX(XC zNZL;Du@m_K#Nu%dWMu+SR#Cxa_f_@30vhaXZzdLx1Ms!$2>_;%4jhhC+eGw{I@~2{ z%+Ww(@HujF9lJRLIk~PkYI*+IDP<zEc|YQf-((UX%fto1Z71h||;4LtT}V;F3Z*z_ZSm>gP|x81@+W z7~Y`Nv`kZfocBLgcrg^9cOpV{;eMJ&R`GZ|)KxjDED)JqSVnmL)~jl!X>ECoD2hx^ z&tS9Jcv@=%pvE(d$z;ao>!ZHDp0!8_yCoAjv4TN^|xeX=?00000NkvXXu0mjfwZ-a( literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/dale_knight_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/dale_knight_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..d97ddcb3d15d0454c44e8a5f96e0c1dbc911e34d GIT binary patch literal 1026 zcmV+d1pWJoP)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NL7NIA_#;H!6YaTO5q2t5susL;5v)5 z%+?I+VGm6QnZeKA%gg`&KEFTD!~4DhyR5{+#}>d+`WFE2hKGcm>fF1*&9PAccB#DKEMFN2UFWLeCwDx|%0UyNJi*b=s9>nNTE(np<@|_vpt_M-EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NKUU6i8}E>6lta*%@}QBvkFa1=GkNm7(TTaqO!w(r3v&*Kq2hdJnZ?D-+e=k$Eu zpXdGV_5Q*?M{*N;!-0zNt-R}|o+&7f|GjSJ)`mKZCR8(|Vh^z_)#fUbWr}6RLgKZX z4P&O{;dCJhKyv+*pk8ndbW|{m!R`S7bdh6c^6Sg5Raa>OM1 zkwB(z3Qf&2 zEuoMrfg|AZB0{{%-^i*)tZ;B{&xdA<#6Hz2+uY0uMk~ z?yHE8Hd9P29|5p7)X4T&7XTw$7hg1Gg*PcqSnjJ>2>iZU01o!A01!ejxOz)Xjn51= zZhl`a&+6+pLG`4SD4M1^P&G{@twbHVWK^&pp46;m5Bl02=DWvZ=@UZNl<<|At49C; N002ovPDHLkV1o6oevSYD literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/dale_peasant_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/dale_peasant_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..b844bb69dffb5877dfb2d241dd7e2ac380820521 GIT binary patch literal 957 zcmV;u148_XP)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#Nim^S#gW{`p`4@{2QWesRY2VlA6;wQR~Alq(Gq$EU+Ibe**=hcmGw z#HYgmVNsSDwY_vLjsaWIsl}Vzq1K|2R_mHZRNp(!1@|Ud$k%umE z{|NuXt9O;2xUgB1#4-Ybpu4Tjv+}qg67H@%!l{;daBpdU(IrFNzcqhLLtc=L$;j$S z?%cmkBB_u_Dk3qFRLGYMA=YxM089oCxxxTocjqkt>8m$6H8q7(EdvmpP2sIZ{`7@<%LKsq(WzXneD6EO4i?THcjwYc02DdE{Iene)oK;nwor!K z%*G}F_*yeXQ3>FLI_m=5PQo( z!+ChIAu4Bt+nww*IBDZHsj?*2jwun${jotJBs|f1IDz fju3jB_uh>^ih9>IUB>;c00000NkvXXu0mjfuJ^>u literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/dale_sergeant_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/dale_sergeant_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..d0a769d073e01d73727b53f021b60180610d97a6 GIT binary patch literal 986 zcmV<0110>4P)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NyYxQCb z281kH3t6a04Y;WWA#_o?RS<;OMHg;#sT;w^!lW*$0V$*wT(>k8;-fy1mXg#Y_Y#}b zCR8a(uZuR1n}p8hoPW;zb7uZI2llY(uwR`H`_;W-gjUY**tiOC*|AJ+RVI>h01%s; zXo}ajBKI8YMKqh?$1(uEzP`$_+L%OF58gevS|bBpPM0RR$K$23rD}rk*tq)Y*J;j* zUjbMv7Mofd>`3z76ksSAQkxP~?9*(bCHYVJcax8bh(p1UI_$~-U^{HplwU}vG=$u$ z3_v91AT~K6XhfXTok9OJx{KzydHV)JTbV}>~ z<^kAe>EQry($fWiTatLWRlB`OgNph^MZhgd{8e_wXtmjKOA>{R5?1>mO-t1lhFux{ z0jYGF0snD6fBQ~hqXdAQlQpDaSBBW`UI*|b@=OI-NG#y=xdFKQR^WPE;mYF=jK0{Z z#OZS*XYe;a`N0SnJZPXW+wX(zfU;w{Bdq!C23nW^}U zs;|sk&gOZYa&T)P34o#~T)el0!C1u&PN9xQ@-{N>R;9R3apoYvXpy+!C+)_ zvs_&Pj@o>5nhw(0UDHDV=(hJaec8407Y!DTCmKUo$<7J?0TY(M5}$hT5C8xG07*qo IM6N<$g1Rxxm;e9( literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/dale_soldier_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/dale_soldier_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..a67c534af76241f34991a1258046a56bb8cc1191 GIT binary patch literal 900 zcmV-~1AF|5P)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NGpfXU=gEMh5| z6d`EW`U8rzHw(RpH@yo&@gV4_$9nM(^it?S1o14iIan+x*p||1Y{evtjhm3oMm(*D zvP;L^h;tdf_nY^b`Q9-YuvVTv3jvO6Ujf+MSU1wn4G%KUI~gCQ?;#F`+TW{QYx;s5QPvt zdGVN1d7M&tJl3Q7;iEdHEH0tCVt!9IQEaEt~0kE_7V1S*q`M$RU zz?XwVZl1m4?(ip?jV1smr>A&r{dcqwy|%~7d%-F@tnM1H>*BgDLE!UN7Iu}DX?4!JmN3`q a+r}T4&ZNsp`w`^;0000EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NV>1;5r{-% z*1;o(QM_IN7M8z?Tr!bxkhq$G^QK9ATdT--cc0+ejhj|Of=D!G$*t`okvGkTJ?|uO z?<`o$eXDz~mp1_TS^3eBPyz&FDA)-=t&-}-x&ySBU4m^>g#sJwe)pVT+p#rD+sOWz@jFx^^5UF0ZU`=G;+c(_bi*%3H>+ zt~E4JD0nvd(gK*Cn#SxM2H?R5iCb}l>rX#2^kz$m**h$zWMf=o@o@_vJP>9vyF@CL zVM@6Oz@y9ic|CL-fVt2hsZ<7CpCLRDM)7(Xi;r7wdtq#5U7tbM!7vOiJ)B3DJpfEj zObXexyCT(YRWS?2@^|J}lgP4%YPBM6fJ6R1I@EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N4^!*3YjkHKD}>_`uByK)h2s)>N3-UN zPA%l;hYNr=F%8__*+3}rt?12FWg;9M*K%#ZVrd;sXPdZiKw{$QU_nsJMG~1MJl+QY z_H)CY_ZPWRGyq^ZG!4L~ z@I0q}j?=9BNMbcnU=)w m?y52s4rx1!|A|ye68-?h|M25Vsy(Fu0000EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NKXR) zhSGz#hjnl6zz+`R_dVx)&-WaGf9Ci5Re)4(lY8B_g&tp@3h-kk4#1nS5n*6(NVVJc z10YF~0AK_Nhr?<cb?*)UX3GJLE|&|f``khppez~SU1Pn* z0)XQuS^%(Gtr%rlMq>a59VE*#6@l534|JL=9I3AZAo6{&oB^;186;^S&UIO6pv@!gvjxO=NF0cXM=B>MeranN&Ds zeX#711pN{poL05D0RrJYWHRZJ+GY!q+XSF%B=t`V00vQPRzChlYUCK>^Gg&I0hz=cCnLEL*8j z>Yo-WD{ZPCrGS!H<%}i7=R!N#)H+>9KQgvlN3mESsQgEMm|qtD0))pMyWkX>ng9R* M07*qoM6N<$f*2L=AOHXW literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/gondor_king_guard_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/gondor_king_guard_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..aea9d557b0ac29552aeb66e504f1dc19feaf2b0e GIT binary patch literal 1036 zcmV+n1oQieP)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N;zWfn@M-T4_V-sPs z`$7)@YJ5QeZ~!zlx0;5rZq=fQ?Lnp;i4R?%~*8$FZ7RaW{(0WG;gtzTw%XvFRgAXpA` zoj6_~wbn1AXR=I1qXoI?nHkjhg5Ut~xFnm9xOpW%PVg3bCX0XhnH_U>o@Z|E4IY<- z3KRjPbj|kr;2(bn0%%ufUG?!zMczJ+Ob%#vJ50+3MEg1>Og-aTa|q%KBBALOi)Ps03t z>H~iJk*Bdk!}29h(T7YcGcK3PNoml!$_sPLo>A*k?9&Ly0Ja+Cq5+ z^RdtTC`uC>ze+WrL_n7Foi{^?C>Tp&V&ju=WRUHEFnalb`8M{I$4{2=m6q_`Sm)qw zZ^5hpPv0lmDLRQ~*Eo8(hCOm+Zjt=rHuJBH|6tMhCHw|yVCuU`eHC*60000EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NS zXw5c%fLaiGuuuf)O}*5EP$;GJ(0@VNQ!io7FH(2GlkvqScrblR%q>b-UJ^ z+k^R*ZgxX`w>Qk2Z|2Q>5`FOW*$WTgxOxJ>>bn&wDo^ew&YO7vlBr=4_M(amM2R!H z20**hA+Fp2V6;%+!NVEvzXbr2iA2B2LI@P-eZ3ckaVykC$b(knM}XUo3&6$iKam~y zrU=*nMMl@K9hc9gQb;Ham3sxXSI>Q(G+$#oE_!vtj}6{mpiLg&IaDRO25xH!ZquO`cttP4AG^TkMfK>Ws{{jG~du0H2_Yb)9bDewg z7h2600JVBOx`Q{%Z#}xJ`=(8Ex>qKb)lp*#YD^)Q)v49%bZ*c4LZOk?KCF9U=T^~T zY+?)mv;C1@XAS^rOkp!Q9>@{n%0evmZxt;bYiH1XT|hg2&(dKmkP9GNMaw5&x3@Sy zchRen7tW`~B|}43f1^^lib(+Rcp`K}*MV(!q`y}%oVO4GCWrt4002ovPDHLkV1hi` BjtBq% literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/gondor_leader_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/gondor_leader_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..db34baea32d6bc06262d9a5192c3b7a619b03a20 GIT binary patch literal 972 zcmV;-12g=IP)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#Nh6|n z!^OzkgYLG=uHbq4zW+J@bN=5s=Mz}Pu3WpJ1I&I-0`T<7kYE*OUya-q>H@&yYpTGy zRT7&OxkdH^plTW$T@3*2?(XJzZ@<1K1s+jki#kkE$?#VB3V^rgqUBRfk}B1AEJriIr%Ysk#?AqLzrIf?tywF$e5_Ru`X$~8 zdktrAYm%6fVI;ZPz?#dG#M2t1(VSpXV3Ye;l>ON6UN?eMp?hQtbI9X24Xpm?IUIFU z5FJ|PRUDOhUmCnXdxx9$4!1$7+)tl5T+>9;7(Jp0fc8zGEfC;SY7R9!kFQB06xsuT zPx4wPXf96z@Vwl@iL)npA5XCB#~26g(`4tf0KD-YFvSAcryus~DNi30kItiN8Xi&P zOY9YG0oe$0Z*Y-Hr=hC&$mp0}oVfL0LC`OuM8c?=Ms6VwKyD##oLSjSB@!lHHA;I- z$*^eCaIOH(j}M^EWmK*EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NjT!$~0#s0|H) zb3+Z`(%x1}Q_vF85N$zI1iAD#h>J*bpj)Cv;E-V6EgpJ81P5J1-R0eVVbD8$@AJOT z!}Gj+@Xv~fz`~;HxNqy-_V8BU3hl>4uhZ$o}#0iS{no05m$yd5*`JBXpWS7_) zM5&(_0VrP8N!op(U?_r1Os;JKU>hCE2Vb-GlQLOV@miKbNjvh?ddlF*xcEr*KT+b<`+_=HBIOs zB=B&5$7*4N*3&bCkp+O>*GX#{FWv6n9Q4`^vMbA8uga2;jC%t`NjQ(D6B-UimgmAP z-L&Yv#ZZ)l!{ia;@fiSW)uu;MWeHXO`PQ{+)3+;(aQpfJ-;1KzYygY65rm8>H5{6e YPZ++1uAOXT2LJ#707*qoM6N<$f}2lmPXGV_ literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/gondor_peasant_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/gondor_peasant_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..cbc01dd5173e914f000f5562958872f9584a3719 GIT binary patch literal 952 zcmV;p14sOcP)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NEKc{J$HZ_+Y5J`@L9fb5p z(m^mqTtv|h!O6iv@IS~PxQK{Ip@Yy{O2IB-Ad_H+bZ`(Su~c!16>AddA-P^}NJ2tV ztOq@Z`2CtR5g$12`#$$R&-Z;FI2eNb@`9URUT{UNXVb2pO}oQ-m0{x9nJ9JBWOLi$ zLSmfRnJ56cR|YFDipoC?gt!-V(j)e966I78G5tT?DFN3&F!00#8d~s^$7Q{rjbc^O~ClW8d4z$c zc1!XefM77}u9jLr5n&=G>NR|~yWd?YG=bG<18^F^=No(M_fJqh_T#HoiBAR@_l?R2 z;KuwU{>CAn>ut`Ad1?Rr#a`n`>B|7%xp@q)ivuf&Z{8D}H0X5NbUNL!R!c+m0C-RQ azrO+g+{s@s;ZYO-0000EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N*|9ZRhPoRYa!Yd}4l2v&WrNts7m@Qkf6xB@cM%H@tbNZcPLoUp zNTvd!$co>*eP&ZqXQJi)=!;h*;&FcFep6CU356pl$`AmdNOyArfWqN701h(8Jo&T1 zxcdj{sR}?YpSLNf^Pr?@5Pb=UX%g|6$OpQ7%Q*QK=ZbjyPU8E5#Ze9bVdu!v7HfWZ7>!qWeJCHR&JU WF`2iWVle~&0000EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N}QV^+7!Aoi&;6e0QByDZA#0E9lw&_Am zmNX_P1hO7P!OhRR5qKaz06-wrX{k-O zARaexw;BeZXc+j#b^!Ja4svSfjJYWW0ZC$eae`WQnYnBMfZ+bCuBAFCS=o0rUX%75 zu=V9im9=*d=!gw7KR@f}hl4?5ae`J;A-&_g0}Rj+8|KIK6MkuiJA>;ddd&W?!bf4B zZ5-;!v5;LRk=thLy6RJ8G=pTiBsds&)YJS_!+0OvvYqqs$LQ51)HnBS-In8*+1fG- z>G3}}%V5p>+Py3E_Q~}2$u`LPU$}Ursfms;1|$i9gD1}tjYRm8U!th566#cl$M*sd zQiARQy6RH^ysdWw@F}y%?(ZoMdq1GB>Hy3H4>^480AtUdoBUlIfR%;!L?bG)Pek^K zL?bGBO|wB6&9E_^L^5Rpgpb}K`|2)5!=SWY0id*AvENpL$EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#Ne}RG`MgM?OT1;sJMS~8POA|~kKa6+LAvnb$ z-pjpr7W_^x@B2It&+~lm6hf0T&53`mRw~Lxcm7-olhvde0S3?WiOZ89XEyBM%EDEO zg%W@SRFf)B&k4h$0{+~&b(gwr(do7?fHpkOASqx1UODQV&W{ zAgt~e>hv6%4O@B}_6G|8>R{Y$v$(WG`R2A1W&GDkfBaj*M+6@2?o6$_NKs1V4FHa7 z=aL(##Jq0Map!pTp(@CJ2gkK@uC1(-*Nv!ydpq|hZ{NKZm&HPfr_Y{9z=scZsoNH( zXD9famoJ_xQiPzj?X67;<{AJ;m6{-j%bdxX=A>A-&O%aU*tF;jzVqd4jkT3DpFUd* zhCcy#v-h5n=aPuWxUqGcjF#ocFYmGFpwn%m=>~~-jNIxno;w1-b4PgYh}`NjiFgc6 zH$*SZhRtlVVT;0?o-_CFqyN^63n5c<^Sbk{QnH2RQv;00000NkvXXu0mjf4g#z~ literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/hobgoblin_tribes_gundabad_militia_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/hobgoblin_tribes_gundabad_militia_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..9c2cbcb4163a446ad5f32805c4c9e64bf118cd4a GIT binary patch literal 956 zcmV;t14I0YP)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N3FQUsxslY`o!L%=}?U3FFb0|W6*e%;r6sEycI0QgV)U`47@bt-j4^*j^sZ`5evoHw;Yj2nehp36V1`t#PHBr~*(^;v)Q{G3F zYW5LuU}=PD@c7Z)zacu98x}8Lz4pEm;KlQ2a;0=z3+7@;sq4o9aJ3nP`5u6`?>++1 zaa^CkWH80tnYa|jXX4Sg)D%I-anX*QCy|KZSmlwUC-ns^u}*l{0>J7H2zG{hL=LC` zSX;l)Cyros2LRqVssF>2Zmp7=J-xq)@n~EEWM>LAzEwyB#!$ADg`NH`o#7tI_z4{M e`@ZF#tNj6iX5DJnE>ofa0000EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N?ZpK`|5rfeSOJMbNgkwJrPuf)@P;tz3lAB8=J<3Nwqra+t7p--YqL8SOQWj7d@4 zHr}fbXW!Y}$M=5E`F_v25B@i-PQ~%uRn;@F4}cU70R2%L*ZX{;|3qPOW<~*|>=d*4 zD|~Y{DV2*xDA?W!ak>Bsvw5W_1KggwW5`-8J30oyNcx-t$YqC>*+2^fzyFf5Q>2p_ z0KEDZ0Di+a6Qyt%ipKz`$ePuqFJ8WQVwy_jBBgTCkfm^p1%Uex=ED{M>h%UvIQR{p zGwDGVZstwXPzKt@)P-r2$Li`whT<_QvStB9wLnGItjT0X>F~7o zPSE6#0LOkBDIA_JJ~|AsiEurZ-h41mc^n}D`}71-tOM|A?F#_A%~ohYf7B*m$JER! zbEAE#+H;9SVt}Ss?6~@1dKyn|axv!eTC|Tcn7?sNjh`K%x*`BrzMe3oSL=cKes_4D zzqLTL>Z+x;?=53tqv`@sV2!)WM{9?%0+BJ(3-AvHbjB8;e?8s+0000EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N_6+-}is-|K8&d{~O9)k4Ms{y?v2204&o0V1FRavi)k;{H}+g;b9Lzi))PJ zPO)UXr&KOVq57xKZ5$uK*htP3n*lDKAD3hymKqoY;Gllg14yU(Jn29P)Hk=#;u?A) z34mR#0N~UdxzREWdetBRi`I(b6Cd~P-jqY7a*aEXS(7)AxZ+C^)vMb)xd|Gt4! z{|Z2;qXX;h0x>l(B^ynr`aCs}Z0kV8$Q;kgKIZ42(W?fTDa>;FYMy`)ShQA@p+wRX z<%#TjVWu!kel&{~3;z{h$I)1(!JS*z|CH!rF55gP%#j)xWyw(C=bK*MdK^c*7^jo{kFf7%w%VqqM& zMWC_ui_nfO0QQ$}=;2Q6)+RljKX~}0C~Ys*R=1Pym literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/hobgoblin_tribes_gundabad_snaga_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/hobgoblin_tribes_gundabad_snaga_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..ae5383247bea895fbdf530dcd77c6d91037e6117 GIT binary patch literal 918 zcmV;H18Mw;P)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#Nt}|Z!ipx7%aberl8eNAE|jR z@0K6)_VojNzoB4&#V7X}GjLr`RmrAX+`D^5X^$RW=F)}4;c)?=0ZfVLWuw`_u7*gd z(`nTxmw#|%dWtP)mk;kh(+vNhC6fFKYQ(iR-u4c=LE}{npk!A?VWr4m1}~NtIeY#T znUqN;WioqQ=gz`4RrSm28YR0bMxL=`SH*mOE&`}*x)fH5`1L>m(lkh>(m3|If|>LW z0Jgn4&zGL6wKR>snK^b=F07B)L-&+qp3TmBu0zo2{65ayP$!2kdN07*qoM6N<$g66%e00000 literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/hobgoblin_tribes_gundabad_veteran_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/hobgoblin_tribes_gundabad_veteran_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..8d5fadaebc889191a56fd06f43e958b2df1c7967 GIT binary patch literal 873 zcmV-v1D5=WP)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#Nzv}0G|hS~yD9uhpz69S&&XJdB|HStXdG6< zqEB~_gtIU=I}ZRTngvf^o{@jGzzC>%h=e&X0JcFONIaH=L4sirRka!x$|ch?qc*q@ zoq81ui;GBZ?Ru;@^(p|sc6z)8!#H!P;>qa|4)!;>91_Vm63I9ML4rZd*q|R;7kBRr zTh_5vY}rjgRCV3mOQlgX3wU|F@q~2$ki*2}xCbQpeOTStL5PHLd42A(JE+yGAc_Xb z?}NI$gigB)0O+*4=(M{~mzN;1&ms^c z48vs*2ogjT4IvW7b1nm`VIk629X_a*-4wn7K-;r4Zl>G&00000NkvXXu0mjf9X^ZK literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/hobgoblin_tribes_gundabad_warrior_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/hobgoblin_tribes_gundabad_warrior_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..5b48bd68171f3e1debd54347e6c31e40903aac2b GIT binary patch literal 975 zcmV;=12FuFP)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N5>XU}p8--j!FE6*!=0wVLXb@p z5=ue^YnN@h(O=CUq{ zIeE`HZ=QQD{AVZtg;L4;xVNVOlyBen++U6qG#i%87eYG6_7`7I=jN}r{hJ|EseK`Wa{-+O8By<6QX;ys$Q!8ni z2bv8FyVGVZUj$&(X%n9d5}yl7Q6ZNlp@vDQVNxq;*78N^D)g_lhmRfrP}@78^>qwD zCc8`~y9~hlgJU1uz@XPxnhgu5I|2Cg`K}Z?U594F;>F8%vLw{ijQ2^qJ8{RBw zxMjoucvIacwUS2Y!pCFK>nnk2vJleAWh$6vRl?iZF0->;mOxFjN-k4jA*A!{$>Rxw z)MCstj5yBeAIejUuU^-P#xUcS{x%YS?%GC*Ou}`6m);Sk~XxJ_Dd= z5zRBM%`pni{Os2&n~d-0RZ(@pW*pX`3;zH>LZaEcpd-%002ovPDHLkV1m>`yBz=k literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/isengard_berserker_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/isengard_berserker_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..47985517c62a06102964491c6fbace2d1d893521 GIT binary patch literal 813 zcmV+|1JeA7P)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#Ngi(V;vW! zM!QpAz{m9!91_!wU7AKAoeYCj6g9Y@kTTRRysID1xgY27!#_uezc@cV@zRWjWdU&i z(2neg@#TZs2CJ%?0Q85$;OI?4#JKUrwx`BT(?USCT=GhJHDb(Vvx&vM%^Id{dymhW z05CU6(*{FkP27{H5E$ZVroj_{*3B)Ol7x1!AAz=RZUHzvZu|{sZfyYYHeL*_uTiZ4 z&>KGoGZzQcjvBnlISk7pGw4!q9RS??8rvt$*%c=L_{bjl2X!H#r6vgC8kR-Dbx?8& zN=~8RI-wRHp(L+(mltPf-5#yZGxGTE3$DY+9iW*Fpmlq6 zbUicxEV-YN8fNAz^5wuUNaDO#uM|U}Z>DNktBMQ|YQgfy_mA)k3mK;i>s3YO00000NkvXXu0mjfi~e-m literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/isengard_leader_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/isengard_leader_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..3304bf401fd833602fa38ebde7cd1ddd4b11ac55 GIT binary patch literal 884 zcmV-)1B?8LP)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NRB*{|!6Lu=C&0k*TPa2wmENAwzm9$U*i!xr*e)49*>wxNo|9@4oMS-_tt} zCz9cya__ka0NcLrrkPw`dFI@9fk*oZ0DnbL>6~YKeE?KCC+>EL{u5P($V-NU>S#Z) zAUEP}#}cgPBH!oRk4de-fHSQD2!nu8f7gP{<6MO4Y-TOxB6!JgP=!H2rZr&@G`g4u zt`b9%i_n@}UU}2m%nrSWD)GEvyvokGVW$SVgauF-Pkb*)An>R7)?~-XvJJZ^Fdv|=ygE;2Pr_VIq z!uyXOxKWDlr>7RD2`{pX1j!fG=B0000< KMNUMnLSTZ<*`KZe literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/isengard_orthanc_guard_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/isengard_orthanc_guard_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..6954cd6522dc1b9bb40207b8a1330183439ab0a6 GIT binary patch literal 896 zcmV-`1AqL9P)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N=+fWq6e+HyrMK%c%0;Nd^N~DB8 z?E(@LONY_{2?-Bf@(Gxb_yP=Ud>w|Cfdv)>OG1;VA}GeD2&jO_#yDBx4%K^gz~OE8 z>fZD2IpoxXT8XL~8PxoBZ54oe^<1QbD3GD3=J|y@0Jhmg(^UY9 zvolPm)4{s{$uT_u$m9xxn8}(*fXS%|!oRCqDiWY_Vr%_bY`1|t5vvW#Wj zL{1?^5!_wJ2SC$RHr5Sn^Mcb#mDtMM4(h=hnj8?oNs_kYL>l`bR_;}T?QGD$X@0+8Dmj&JXtWOKXysQd-H WEXt8*oVx4)0000 literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/isengard_scout_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/isengard_scout_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..5bccce74585c5c8cf38ce14082ff6c7a8aa458fb GIT binary patch literal 817 zcmV-11J3-3P)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NE8_#i_Bz6dN@VC0*#msEK!zFyD92%-nki&P20Tj&xOt&Uw`1g_2P? zNk~G1^(L1IC>e#wG7Vmzn*fZ)4ioPe%QUFkHhm#z4@H!OsA(L~2mq?Keeg{} z^2rlOgN%vyi|a3AkX*~WLedCenMS6T3OJ^>hx;VUG*0vrfMpsC27{ixlh~m4z$b~$OyxbR;`StX#litZ}8`Snw5OXC`4bM@A0UHi&ZRou16S#q-h^- zFOjY)k;-ml*|jkU0_xvCXxEnj@y_95MK=go>dbpQw vVhbSg+8Sk>_E5zAmxCiGQfe|eSZ{Lwj#tDYPlUS)00000NkvXXu0mjf!=7&` literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/isengard_snaga_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/isengard_snaga_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..5a0ad8dd2f7ad2327830ed6d70cce40852f56e06 GIT binary patch literal 805 zcmV+=1KRwFP)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N(Kf0!l!RZR;u z>yVfSQL*I=u-$10vYf$o4+1d|etrEs5fFVvH#P?)0!l@d9qS8#T4j+=u>UR{V!P91 zKvmNyH|hYPkA6Ggs7L|0yMN&7yt&bbm6`@+JeFnT0|fwYI7SG8 zJ93#6a_EM+(oj-aRs44Anr^Sp>)Sg3j_t4~1OV>HjlJ5wJo5n_Upk8vqD=#!+YZ=H zEbyd|i=~2IO literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/isengard_soldier_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/isengard_soldier_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..888d9c6526165f78adc5e39d7fd76b6dcc45372c GIT binary patch literal 886 zcmV-+1Bv{JP)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N(D)Sn}H30^t4UEA77q1G^vZ?Y002V}rW(7k@HUW&r+V znljNh4IHr~j1BZkBNJ7xG|(#z9I;H}d3Oau&@@f1r*j;!#M;>=5Q0F64A)48gMBLo z@MiaUo?JUOY;uQxJT2A1!M+vOOfw^#=WGQ?3{of5t5rrnep0+0QM?@~ycNz7{utqp zdA>v?I6bjrYiFD01|bjvZ+1_w(^lBGo8JswS0zv#3|&{1_59^wnFL9RHPfVCttvto zMY)}168PgW&GIWK=oFvUe_bdPC;_Y03MnLu(iTrr5Xc8*Xq=wdF~FzG%S^m52q~N8 z+~|o;2k3R$9Co|PIrL{pApwv=B86nNSf>i)1Bcx%y-u4jiZH?`N|p58y`vNZkB^zH z3->Nltd^8_es;#5W%29l7XX^3$;Yep{H}kj1aICR<9i+-E-nE02eO#R*6GI`$^ZZW M07*qoM6N<$f;^s)-2eap literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/isengard_veteran_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/isengard_veteran_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..a90695850ea97f8417e3f8017e3fca19fed4c73e GIT binary patch literal 929 zcmV;S177@zP)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#Np5#a6|seZD*)C~DeH>|hTXr$&_5H1u3<3*gV^ zJEWNq^lxotZv_ttvqv(o*H#boT#mu@4H;`d#u~_Y#h)SE5yBmje_%~{dDe>7WgF#^ z^zI3PJ^d+xM!5vA74zrw*g}6elps$CX5X*zJ)aZp1b{#UOs6BtXXhB@5}&WW0g%_U zxQUHZL%ufS?;rG{&X=1Xw2C?aJEX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N_7&)|p2!P{aj`ttGNT~#kdQH51p>t%N;J7Zor#~5t9Aw>~ zR4gX_CP`+KAXaL&+o_ggOk8`90iIZm#zBC#*6H86Y4C@MWtPPz*qcny6a_DcfNfRF zEQ{-#zO<7v{Pvw}K8IP-2-h=HEb*>dEW!w?uhO5ODGDL52qT;@LI?7I)3sAG`OCq{ z#W|Ai;@CrEr2s%SpF=BYsIO1?(Yo5gXC4#uZ(W4?jLYjDgLaoeyGwKICC7dcY~i>5 zfn}D3RjB|_688YiCsP)S1^3U7@Fo-dARrD9Kq{*R@$TZB{&2+C&P_sgDrW(h1+$g2 z{in(9ZPf(e!>7-y4En8`Sgy<9f8S(19VLVpkuFs&5UPvNfTEnt-wq9 zkfnTxTsR0000EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N+f1VQSM4m!Cxw2-BPVCfc6M9@tzi-RGG;F6&Tr6I)*mb5kPC2Dd_Oz$q2 zYl_pk*lVvzXW#O@@6Y@HzyEvhgZ~}2e&B;gDPu3+u2)Swo6Ypp5A-8nyBg(`#{)o1 zj-qNhyPYn8aad&FC~`}dEyBl74ss_DnDX~{BDtqE}Obt=Dp_q5w1uv93r zu(-lfp=iNMrK)8feOuVBR~g+Zz*YetplS(rJ6#L*?M&=w0f5xYXMB7y1Hk$}>z78| z0NlKrWNc!JkZ{ZZ5S2eR%S1hbVEoL#1whPa2u5S5weNIPgo!87)~x)pTZOQiRTr&}cO9 zdcCA?oo4d+X8__6KN}4VNzsW%{Cruh;}e|N_x4>XRSBLQM%-L8-Q0V{6}C!r}@5Znq17?vBb(au|oh0l-E>vk(v7Z2*BlzzB!KsA`+lwuck#uK=72 zT|^O=&EnjAk=u!Je1a26(aFsh_dk-VwoM0&++fFbnTohhn?dTX>-%e-OIyyr-RIH7 TB**Vy00000NkvXXu0mjf#%H%W literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/longbeards_erebor_elite_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/longbeards_erebor_elite_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..651d55821ce132466c4b594b719827e12532354a GIT binary patch literal 924 zcmV;N17rM&P)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N70#n$;AtWmA?ByKk~UVC-|!TV12z! z&gOF@MFGI+6$$o|XQoqbKQo=eY)oNWEmx>lq|d>oRt3PeTEs@8E^aoOD5~DK?totg zW~1rp6;*d#{4;~@DZ7S;u&owGx#S7+uLAof#yRkP1%M3}0GNvx0eBfY*(WprPb)^iULJxo}x7GA$B+(2c9>7@|ej<34k}RUvP2ms_zSfxOaD%L?XeRvjPAYmftcIiE;Y;WsGu(Y(7UieTdrD7Qx=cyX(^ZPrkUK z>Lf)0v(Y4QEX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N=TAM_ zdefv5Y6QDYHePRXaIla5pv1SgU(qy;39Ezq;X5xkU4ow~r$-zuUYkZ^57%{-UlNDCdjPs=`Tzg`07*qoM6N<$g1W(?y#N3J literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/longbeards_erebor_leader_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/longbeards_erebor_leader_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..fb66afbe1552059a66a7ab8eacc260983b3eadc1 GIT binary patch literal 995 zcmV<9104K`P)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N)Iz+hDs6b@<(b|#{mix{9 z+@_-uydA_}>OA&b-sgGW@ALhB-}iape}_CbDCD_8(U~vDB(WTmL?_mTQ?mXXwEm^dZ7y;&Q z1O!0*{Wr#Y6w(=`&DEosBmm<*@VEsZTUyiU0ZNKWXw1!|%gTfKB)$;~z7dP2-mLG> zOf%`S5*l+;QdDS8ArMcJ&a7yPl^yVU+yJPhuXsIfuHBr_&eNF{0`cTOi`f@1Me_~( z{-CJ7N(#R}DE$7Q=#wPTCrP6CY)Y$Jd-MybMFG%z;i~q_ymw~-n7wWzI~4-pN@7V9 zY+@Hui^8ZL906b&u);u?ZTSt&G2VLmrR_1dw`6dIF#$@Yf_iX-{`jy?ZnXeFZD$XF zdQD~RV-|zKfZc9q@5wppHMI?sTP?7@UPS->=Pm$|Q73M51zceOtX7Zqfvooq8x~w) z+~x|AQK#lg2jFlxM1TKzEEY5Q-!@IfRQ=pgHDA`Q>FX_{s#O$amr|*u`wI#o=-hYA RJ)-~s002ovPDHLkV1niu(nSCO literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/longbeards_erebor_militia_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/longbeards_erebor_militia_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..3f3139a3192eadeeb8aeb9a1d48f275923f814e9 GIT binary patch literal 938 zcmV;b16BNqP)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NUa z7es`L4i2J=f`2AA72FgGEp+H0h;va;LD4-O91LALD1r(O!L~vjdQk3CNNfI(5EB!L zw!IEl(_XIX=sSJy^S#gWKF{~T|1QUFV9e__0M6bV1t9%=5`gmBFWbCpH*%~m48W|A%JmzH`qf?}-lYCSe!0i`pu6la?92Mabq#lvkGl2wc4Yz-;Cd0HOW;HfJ^gdG00h*11|c!;g9sC7&^Y ze1>vl*fQVMDKPQ$5lJOLQVF!N-~IT#k$*dQFtfKUWscUdbeaU-<^JVDn~0Oluq03Yw)%~%8+0O!MDBlrCq1-C#fK1iWZK$0XL zUhDd*ZXlgoyf9G^0J3!qiTw@Omd^u+KzBq6paJHAk)MVA|X)U01%BG zp;#=o$qb&OkuP%zjg?A;kG0x%gq2DKf^k#be;k0UK5yxTowHlD3Dtg{GW5BoEX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NpX;MOv@~4*TcO zHf<@M!+Af&L|5PR-plvyl zpO?UItCoyCRLw_xZQHatVuSqVE&!c32gz)uNWEGB-9XiR0OWK7fV0>830|&}pw*-G(xVfLSl{RvR*5dH0^k6MEGML=v&%vt z+<%YeCQC4%{z!9Ei0&(Wtm`@e?V;lU1XZ^wJh1<-xLv%QiO@Mb4Z!-R5BMkwOl)e7 zL~;XwiO~VegNqFf=I3t)CCP!}cCmY;9>3pDtjF@=#-l}IQ*!_$k{djW4Rd+$!LK*| zEv`L&2Y}}%abk1;fPi{bd~E7m;e9( literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/longbeards_erebor_peasant_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/longbeards_erebor_peasant_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..3fbb3f0b306fa5b9da95c03fab5111da91848642 GIT binary patch literal 953 zcmV;q14jIbP)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N9JbW{I=;--|kauJA&>g`GeL_#Zm?9eZPHg9tuEl=8^z- z^rpgWIxd^$iUsx^n-U9kb1>en&=QNZ5Vgpuf*%($+L)VVZ{<6syD`RhplZa#fYlpfQW2>>ci=io1# zymC(f3_q+9j>IqwgIcWyz+kUSl%6D+`U&d0KVftaPNgmY&~sa8cg_$D1~E;O+zpjB zVcPijK>mUUcV`DTdJ%y4^DjvzlQbF)KCbnD&td8|qmV=Fe%qw$3H=e-sJ`=^-Orzx b7!mjdnP;{Z;ra{K00000NkvXXu0mjfvn{gC literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/longbeards_erebor_soldier_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/longbeards_erebor_soldier_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..80003b357f039e33d8d534fd8caedaeb0fb18128 GIT binary patch literal 939 zcmV;c162HpP)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NEe{HfPvCZ8nUPDM@Bv?z5 zK~7>^oZK9A6BidZLBXLz20td(LLD5$(ar%uT9FKeDE;uOyX|caPdN6bE@7yi+ufBigStrK*vfU`a_Nf zV*uy0i2rZoj%9g-0}Da4?A0le`O^*>W}A*>(J9fa=yJu~Zge{$wC}#8M}n6Zf8D^?EbUk0Q&CrsW*_+FeCwR_sutt!)m2OY&lNt@QBsbIHEsfzG1f6-Z=n3lEMItM}o!s zaeO`>kw}Eh?EvGEaBI4CgRh@HqwB`W5~Io=k=*&UCP1`YrK N002ovPDHLkV1kQ9w@Cm1 literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/longbeards_erebor_veteran_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/longbeards_erebor_veteran_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..76eace526fcf4bbbc830200e4bcde54e237f35fd GIT binary patch literal 980 zcmV;_11tQAP)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NK~y-6wUN(DlW`o!U)zkbQO>!=emSM05;wv% z98#IgOVFX+0?{sZNyuA=;UWKkK=9H*FUrF%5ey1Z=n!4R5Vq8@VpQ(OgSO4bC-=i_ zjHkoe1E#Z6-`nTS`~CjBKkqO6&o?pBrHtRXqMXEOIu0Bi3n~D2T~RjL6#}hZ1t1&_ zY5r+2Iu=y=eBGFgMo32ixHZ_%exVGY{B5FbB+g3`0GV_WfaY^&xzXz-5ExP#8USpG zS@M#^mY7wsKik>Nk^cpQdHO|*6^S483y_~@ws5Jut~U)L8{fu()BB~(L>t`sVc(3 zb@Ud!A^L|&`q`@1jL9Zs^@EaG}C<+W;+7Rwn1eLgjn2EcB&D<+c} zgQ0~=B!b;&M3f{x>2#{Fj-Bf1L6(1z&*uEX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NiUN!W?kDhvqFq^$0Wec)5kp|z+>lh z!_{PHVwUUs!cLaa?wHIchUGxKSq{XTWp7ipEX+;G!rYV`h&RjjaJkGUhUJfY7i4c! zwQLWUyS~xxm~=I`dcKdrk^96u6vi)JcB&dq)kinS0f=`fj7;QtHg==5h5pH;0OYQi z;K=WNE-A{CdIlt061~xEYV1WmE{xwp|CXj50$!k-eh*nw?kg{C3> zexEDg_umBqHHv4}oNnN!j8`-7fl4gP#x}F!FOJ0N=PS$i761SM07*qoM6N<$g0m;t AumAu6 literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/lothlorien_knight_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/lothlorien_knight_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..8ceb8e346ac32730f6164feaf3a2b6ab2090e494 GIT binary patch literal 1034 zcmV+l1oiugP)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N}=9uZ0llJ z2LCQj`|Hx)tC#0}p7&efKNhMt#nFZeGM3G&LN$rci^^uavdx5{dQ%*1I{?7$L;CI{hwj?YLx=cE;7q&qACb{;!iA_7YMjAhH6 z435umb+6`T8R-s-d~`?*M4H7wq*?Sf1w>(XQWRz<#XzK4v}<0Gj}D1%x6X*(rhsVI zyb>Gf4hy-1%coCqY4|pg4xO=c7u>40TlM~pF#sYRI>Y06o{U~!yF%YYOaa8MuTC_V!JAj^u(}*4`e>|Vaqp*Jun@E9n}{hJ{s7>}@sl)~CacSF0D_uMOH1o!RQHU1 z6EWqylMw(`$^l@0@e`T+4*=4sG&^c*rD!TT$Kac#jek(I*QpeZW&>5KAAoA#79P$o zp*YS4t`e%Oknee|-^5BeSos>ddOFEYKL^07(n!XWZ1*{|x9;J@*(sTz3_$gIP`w@r zW-Ob#L!$&WouH=k^uZMGVjpFEJztLC5BMaZ)>A2G1!yz=o`v5f+??f5o+zv+ArSs` z3%obKjOz8^5BSJ_&%5NGzv!>u#>?rqfI`A@NEB9-KlwxEsr$UjRsaA107*qoM6N<$ Ef}Bs`fB*mh literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/lothlorien_lord_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/lothlorien_lord_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..8279c531c27d4ea73e1a021227600fc5b109dda0 GIT binary patch literal 1070 zcmV+}1kwA6P)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#Nvo>FBhtd4+v9mT`ELoc|9~lSS)RnY~WAo3s zHuPQEt{821?uyRZe4!|cP!vUop&H@o&2XVuYU145a8gaX5Nl(Y?)fJ+pGe>8~n=2 z+kF6pAISjBEUc-(14X-tpS}seVsAUobZnKKGqf5vZt$J2HBVyGvBE(RQkS$sf zcXWwBPfHpm?&uPBn^j15n^jzBX#l`KcAqal_Y$2-Fq36H-U&CZ4+Q|^R%{TQ4$*j} z4S;74`p`5DyCpzWSPRi6KXs2jajz9Mvv0>NGl9Nzot$r&atCP|c1vj@YA?PA;LN!O zOhzNW7iR&`7Zg%ebsRv|A!QnXreU{qD-sormtY|j0l+ssLo~jU5H%F0q_|j38g)!^ zZ){%T-%ad!{DeJ8ElkE!Wa)Ae+_Sa(2)<+?l*#nk9A%qwGIV)*q07^YZvQ&w)j^d? zxgmzj<;3N3Qf`Pbn0*6)>&AJy{p+OiGyo=(DOqnxodhbWE^q@-KUxCJaWsia;e9^e zUkbtCH>lj1*shV@1lMG&jLC#!*n~}q7>k4@pAV6fqf-U!_ODZ2f1c9ZTmWXHQC|1I opxuzkJLg9ri{<4Qu}E0@1NwCg5tnluF#rGn07*qoM6N<$g7iP@ApigX literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/lothlorien_ranger_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/lothlorien_ranger_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..b612a9b5cfb2a2de5bbdddf3445bb98ed60c7f58 GIT binary patch literal 998 zcmVEX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NNpTrb`*m`HkaJfn?NYju& zk=9~u8af4`Gy&124#6QqshK<2#X$re4Y&yoZVnPDwjvdxBv=}x(HJ$&pORcoiD}a6 zlIa}cU2P_Zc{Eub zHtOoieza5D>-m0Ia7tRcp;~N@7A7@-`-N_BW#POD0tmb9G^+}ngcr&Q0Pan@0GDP3 zSc*jmyX}PCc6Q&q=jw&CMCZNK_G)~{d?q^YB^tT}z{J1-69We<#UcP$^JJu2FvRi3!r%?{WW(#VbrpXc^#-6{ z*Nb)lUTtKJ;M0OiBH630gKFzH=zpW&lr&KkxHbI?fcW-cuVbTRfI6hB-0E2V0E~Os UglVF^0{{R307*qoM6N<$g1;Qli~s-t literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/lothlorien_sentinel_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/lothlorien_sentinel_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..83c6e5436ef705936cff7f9f9d516550a964d1aa GIT binary patch literal 973 zcmV;;12X)HP)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NBQ(+j#e`gHRi*hS8<~d}b6{|%b z5~4^SLMw=g7YRcqL%M0mAnc}K1VYe7?5aU`fsjEI3dTew47)fZVTN{=M3eb(=Ab#; zq8qPH7xTQH!R8-cc%SG0{Ga#vc;OH{@?9|oFE<&7#n@^Q(STwAT)NdE?$uzgCG7S0 zllgOml^-b{JbM8=H2@yJ)uoyVq5;L|_4iZST%)wP26g8Jccben4X0Xx4~8{~WEEfR z2?)XTjH%?7r231eiJ-z(6?2 z^yDl6%U`}R($~%C@DO@h=X>%eBYoXG8T111>HQp2^LYls!OAU+4i5p~^UB00RNlQB z6R*Z6RKCuy;`7P?Oucz|FvL(iDFMcXcDXEY%N%!=$yhi7z|6<7ik6nu&!m!BLh+s-+1XVsw7kYpJSj!;1p{DfI}d=i`iny8F95mi9H(1aglKMN zh3AXw64gEufSy{!<37hxhZBGk4aZpD*bvFBusIrChNIDC#4>wgNG1{ql|(|V@I@nc zh-LOLb#?%c$FooG0Ep6E&2oip!i?86?VyEhR)=eKqQ`1*p0&i9Efn)PNz*i}0~{~b vi*x;EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NFKNr*X2-xI|EhJZ|0Z9lc z6e)evf}7xw%|Vnv5vkZA!NMtxi9!34l-xDJkmll0 zYL{~ece$hKcYB`S_w&5n37n%)IBMAA%I~t!&vzzig7b5;0PO8o(KMBITL(aI)*X!d zJP_c)jGw}AgLjMp&~EGaMgoStklS8uer}e%{c0~U;|D;~Q~)H&XHDXmAQX-ovOH#u zYpU==MBVMhcGx!(F!W|!aKBobG60_Kbd76E*BlT)JR;JnY2bkm+64ff-UtFg!v(OC zN)V5T#3LfxpTBbN`W2E3G1Og^@5)b-3o(*+ZvrqmaKz-m5i6+#04}r3e+W|Ah z2EL&|q){*JKOL*vqwrEX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#Nnz%&8Yhmv7W?h_WX7 z-8TSC0_LRBV#=8Sz^%CqC5HhR85lz{@fxoRuNvIdZdKAw+QGhr;X)bc(}QO9^mF-e z(Uyw@LBR+6|EaWT&lJVAN@y`EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NedGwz10p3ST^b!X%m!h3B;N+YG&NC6T&W{QA{Pp8ozR zf!on^Jvyc#8bA60MI>ip`lAZVi8soIA6cR zo&~@>O(ihMRcJtB^{N#d*oVu)@lC1E7Hfj_OJfmY+5KWVOW!|LN*=fahb$bS89Ku~ ziy&7Ca#eQD!qF8kY6UZZW%p@L8zgOmz!&`5X|3)}gII*vkM6^MzeG~=1I^8puTlM;iY`xk+ guFA0%;rpk`Kdy7x()GDjdH?_b07*qoM6N<$f(VqGt^fc4 literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/mordor_militia_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/mordor_militia_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..fa948739c5fa077c26be810badf8ebe73d397fd8 GIT binary patch literal 1002 zcmVEX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N; z?m6e4doQ2hn#dNiK7dwII5U0hLmPmj=8^axD_uwSHrILe?kxjVBeE!nR*F2&B|_mF z1p@NxXKQ@;S`FXhhE6plQ}nzmB4XAufVa6$!fb}b*$BpQjx7Kz#}QJtko5zL&ap+N z@jWCAR4pXVl4BW#rE(r67V|~WJz6OeX>{rAwyxW27@KRi`Q}R@?#c+!O7RjQ(&z&4 zL`-PxTh#P^ShE~Q2!K^J?mvE7=F^udv5azK_h9yo2Y1-6)#;8sF$ZwiAJI8z1CX)p zkZ`Y%2cXeBA1f+o4t?5&b@>Va>3P{dljl)imf6q+or5+D+H{F~%@)h5!fr`pxV?wl zKA}7I1i)M%&>edsTTuMCq2mk|*!i>1{bdJ$di#WQGR7=6$U}iQ`Mke{3&7{q6<(ab z4{e)tGDfYOC2r^p&#~`YEde0zDypB$rCGJ7-L_;Gt)wteHA=fjbWa^Rl_GINN3U6| zTO$?|34ScZ__cq0;Q+ww_gNW9{BGBQIy*t(;|Zt0LpcSvra03b10b2+1k>nY_Al=1 zMv^S48g3+cDFGLcr=muDS0f)61iM@>dNQ=FmPNEX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NO7xP88WUeZ?|cZoG(L$j#t^+Tk*Fb2ApsIoO_Y*yXbW_vbSTpT!}g-g76ksw zz1R2ef339z=O~d*NPy_D#z9?Tl`R0OrK?wPC6o0QEFrMLFGOUa* zG;rZZw?}#Xby1y%OoPQ9FB!)DKb!S=#jAu>({$dS) zF>yq3wL!sXs=J153jr{qhvdy$S>AqLBpBB&eBJGR^7;U?g=K2{j_?7Ln{77NDgeYS zO97YDDFBM4g{Xv#VL$JA4p*z|c;!0_qK3!vJ zI7(}Fg~Q4=GxH0)c#_BG8r1e3kw|MYWE$9e-F*MO%9TDFfaS_Iu}DxQo0(rApBtlJ zkNh)uoJz@Q4gvT$a+UkX=Pk=3770?wCJ31Z@7{kPpBv-uP?9e{H}DKz|JVo=j%G8tpUvZ*(lthYVV#yUyo2W zck$JoBSPj5_4a|fJoHCMM!MM8-6z`BV*1mZiv6eBS!LPW?IZx`3HL~V8%JJ#cpQ4Y n9+Jrz0F~;h0$s>e(QJ#qil6-msX)mz00000NkvXXu0mjf^L*8p literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/mordor_snaga_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/mordor_snaga_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..763b95d8619584c0ae226f055b65d9da73b8519a GIT binary patch literal 882 zcmV-&1C9KNP)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NU_gDW2Zvtf`%5f@RUMHiRX4`*A*NroSc^_h0m zsn?XXY2$egFLt&WT=_h1w*mNmd5tSa0Ip?ZidO=WF&mV(y8IV`M(BNL3ayWDp|b7yvOY$TuuHqD{VG zmF8kx=wLUK>`xUI?Rhw>@wr;is#Wnkr<8V*=E!2EH9UN--xih2C8ccDsQ>@~07*qo IM6N<$g5&y->;M1& literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/mordor_veteran_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/mordor_veteran_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..b15e1294eb3c07c2382feb7cbf56ff0b162453c7 GIT binary patch literal 872 zcmV-u1DE`XP)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N=kO16x|BO+r@fmSvd!1I$CQuK|n_sE@UzJ9(SKYe zwz|8wNwHL*<~MZJP%6r<6FYhp;?796;8lp!Jxk68e}4ZTs}`wysveYGC+Q%zT6P^~ z+SBxM7EK`&@1azW6iWs2w#Cfk69D-S!L$Q2;tOmAZ7xoKCaib*5#Of2=v=FSH~InK_14Nke{H}rIcRN8vnM%3%+fex=W6G}xZXeTUor)-P`Q*R+_nRH*?^Qu=N yYnhs30ND15{v27$)V~qn^6!-vAH7T=?u<9AD%Q9EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NN0x4 zB%t(@PG!hyxl2i$*O9lse5AU#ga^#;Kn+IQ)^p>+8YW?ZI{b9>v91I9ne2p2lr2in#** zpu*6dAx4XB3C`dqugffRu2GW(?n5kVAblB zP4iy`e_U9FeS+O?lEs=N10;(z$*4CafY9S702mdEf|jRjniv%efbirL{-A!@>!W*N*@w zRjc$SQ)qkJ7@vD>FE(B;VwKDEopgb_jaysa1i;~vyJlsV8?l>iyWf=9Ye~2rG6%<} z7*+$fLndp1B4o-TLi3002ovPDHLkV1g&r1vFHHuIia)@ZS zfi)#WMKp#*5+sNks5Nwd(gg2K?p0bEgVvy-pCzlIrMcFI)*uM_foN`MDr$+iaa2$u z`>F!wM~%6fskQZ2FU3;8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`On zC{iX&0Sg6(1b-uTJt0R;CHr8ZfvwZ$rpi+XV-lngw7rK z-ge!uBiH>t2G0{*T22326(&Exv)$A}hY;9=^Q)$&?ZU+t^gfnUTdheRK+fgh?G*eO z=(&OJ#d>aydrs~lwE^?juzvtUc?c}E*}JPXw|{#Y`G5TYdR%g?Q~faK2zwwFR{u{}&9 z`fh7d@^;h<{3jlofhuoe5moIwZ z*Ex-9b3q{0Gua$>S0{S$Z&QH)c_idQRQgFOq3+ybNxL~yE*FwW=b!j1aa-&m}1_Pi=%R@Ys*Y0Gi{W{^GGLf zT+gV0THj*cq}>}c_?|GG%=qXIW24x$zM*v>Nj5jKbO%2G3MixW@TPVk(F4czjEjTa qc{HygavQ0yF)7^Zb&c4r^^HHSkcQskE4AAI0000tWsi delta 846 zcmV-U1F`&&2IU5jB!7fyLqkwWLqi~Na&Km7Y-IodD3N`UJxIeq9K~PLN<}IT?I7Y1 zp*mR*6>*d*7QsSkE41oha_JW|X-HCB90k{cgCC1k2N!2u9b5%L@B_rz!Aa3YO8j3^ zXc6PVaX;SOd)&PPgl3hgW?%wPHOojR;$kkpDh6K>LKp#zV1H0zrk>0!X5l%$?&0I> zU5saWpZjz4D+QAQK9P8i>4rtTK|Hf*>74h8Bdjbb#OK8023?T&k?XR{Z=6dG3p_Jo zWYhD+5n{2_#c~(3vY`@B6Gs(QqkJLfvch?bvs$gQ_C5IvLj`Rm!*!a&NMH#`q#!~@ z9TikzAx5i4ihqeT?Z-X*LykX1E}2{vFmf!Q1{IRy2mgcL-I~RzNjE7J2YOy?`(qRc z?gFibZGRuzcIyQ2KLb}<$6sp#v!A3lI$HDy7}y3bt~;8%2VCv|gHO6-NRH&EDHMyq z`x$*x9tht8eQR!S?R}g+09op4`35*R1jb5~z3%bu-hb}i{yo#~?+1EZa;omFGp=es_dG{j zno5R5QxX{?1we)@x#ovJe~` zRoGtN1t6y$v|Z1MqcNLk%r>)x<6wX4#ZS!<2WBl)#}yKe!^&o!ufu}?oK=0!s{sIG zPK3Tlgsj4PVxZHbF`MOIlOfZ<_b3a&@zpf|Zhup34AL1_31IC6IH?f$H8$qI5cr-k zIlj8)f9Z_+$9@2!Ka#LjXf+u4lWir=|9l|DY?H3BFjR%b3I6RJwHg4NK7Nd5b&U&8 za#(2)_hg7;4B~BEX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NX@8x$8&u>>5HUP-Q6YIP`{$u&(< z1DfU>LVx{d@}0iCd++@o@5@1*d2`!sKRhSf^*DQW0wZJNLf~neA%ae?azSA6cucBk zFful7t7;35rv12`PJFV3Y3N+Jc9~qhNU87}z}{*i?|gYfTyJ`NheRTI>xaOR17gou zme_OoA^?rbK3s=d>UWUK7lmLsV*qSK|L+Kc;qnBYy&-(9!KyfI2-4jSLttiECt0wF z*Gll{!7H&3^#^ug=R0d8NG@1J&>8H%h@MIT;A^j@30DdLgjAKOL~NUZC~-b`pRZ>g z^UHWiSXBtCiXeqm1+TosR3e5esxhMs>^2xKPtcQ@BzINg@Tu#}rq%>$Hnm1;WDr+W zqbD=T>B7@ZgO%w~yQ|M3?s`^!PGx43`dW&li&pY>y%MB1Eakp@axY4ZxVq}8hH35n82oqIrgIIykl5AWyDzAW<0 uWs{w^(IO21NB~DWn(O|uwdVWhRp}q%0lv#WG(`*m0000EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NX?g~%I?N& zn1qW9dC8^!c<~T~NS8clcvvXt5*-SJI)q*VVTnLU>=5lnk%y2FjL586oCz(ZaB>5e z%n~+qIxK# zM)i5crDd2rc{;(l(`^DvnmT>4v{*@UD?A&!pVemIa5(_2ts&0e9HFBw&knAQ+c=9e_Q}p}z9wD^l3I0u+L{{S zKbYMItipB`ZnaC?z1YCaz_3i_@%07*qoM6N<$f>z|sRR910 literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/rohan_knight_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/rohan_knight_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..f5b5e3d37eec69640ade89845a16b8ef5373ddbb GIT binary patch literal 936 zcmV;Z16TZsP)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N0C^#7Y$}kyJUv zx=17yT#Z{mCqXiZ4jqbgQxL>K9G%=%=%kRL_@@qnI0Z#3Em2I#U8+fHZHbr5oo8&% zA>_;@M;E{8d*APU-sgGV?}h(7p5Daend??}yjf8k@44K(1LNxjOOl8X3=kO`1K`Kj zF#zhShSAUgtnMb>US=nF%T;zJbJ6N+01!JEweQ{Fx~c)NcXWjCgy?AIu+S;)0EA$m zTe|D9y-XhtTW$sFua+xtxuSX;3Z(Q^BuS+H=&oIK^5%Vta@mm^%FOaE|CZ(4e7^-D z7~sn7Ii5d$;9xsG6$T)cnr6|rZ}%Ahq%UOox{~LaT&7S^NKPCeCW>yQ|9)Y!qEJ^g zUbPZ!kA=@9H=dG>tWd2~0a)~%qWbOo?h1->naSUIlG$?rC~^s}0J5S`9gg=Y@LWp8 zty-f!X@BAj0N2hBAjaaXz5D>cx&YB=hITL90_h`bHuJgw zJCh-sEjj*)Vt#?9ZcuBqs5M#)jQF^v87AhR9R^Q(d9%7f!ncRWxPY#k`2EA^y2;Y} zRUUpRF?7^}QQAf`OfEX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NK&T~s42QW|MT)6OlmDKkkY9d1p! z80XSSMqPMT_q?3vz2}@e1OFM3FmYlq)AG;uiB$Ufp50L&3xkJx5&=!rlu4`IB#@kk z&q0AOt9GE1SUc>4g@>c$k~#ptZeFJFcp=oVV+0>uu?)1aJW`aY@{_kuCRwoziVJIj zQ92BANgZu0&wW6OG63mg4f-^4K#{dScOYt#;+sWa5rDbkYosXi^4Y7<_5q^p!tC>> z3}-V8XERFk^TMMC|K0(>y{Q>08>?!B-m87|>w0Jh%D_I6#Jew1TK>q$#2wbZZgObZ z0GN9w{kqPMVf?)Vv+4nrja9~H@&Fh++eA|+*soCr)3*m&{@a^XoBb3tuSC#+A0Iw@ zOG-iWMv{XA%Nr@3;Fj)v?ol5;b{YU2iX(ON{%_Eat<8$66*Y;dNiKB9n6Ecn+|wq# z=>+esU9QKv(0Wohj!Qg#5yx>Uefq|`t!EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NBss9HAf$~+ z2B9gUgDBFWI7#W|HV62;#+?Adwkz}-`_jvg7oaDNY9Q6=blW&MKTc=-DZ_;;_$GavSF~iZgVE& zAw28{AoWyd?ny@Zr-37GM%gg%X&Pn20AP9DZZT1u6#@JKg@D(_r)g5$471w9$83$< zrUk&#nx(jtiMY6M@wi-hJl@ka*{nAB+@{6kl|cet8$h@ncb}#)9&ea{zR&7X6|IW$V^6#F9474PjG!A+|ohUzcBw{gX|Z*o#yT8S5mn`2QN#kmFm<=0D_s74Ac9(v(du4 eEdUO+8TEX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NQfY^V)T@)>df;;h#5DKmY3pIv-3o(!|2r5(&1*^2!lysnA#%fDq8$!}H zD>E+QJmzJ(^R3>y@0@ebz4tx%&!w~mrfxs5-RJEMOS(^|Qxd1Gm8@woLcsu?9UTB{ zl?MQ*RClP?_5f_Rh_5xXOfK(hdt_w7_6PvPk3_`YO|DdT0Pw2^2_K3{Vp0hX*dc_1 z0k`#imq%c#XAywSRTHB+M!mMjol~ZWJ>;B(7tNTz)oFM24U&3Z5SJ69aY|;6H%kF2 zmNDLQ|7}C@I4GGp#z%+AjHeAaf8wevIlHeaD@D!Qf$ zkglmjeHK|GMR+p7Cw0s#u)Se58+bXv;eo3x=XV8YIloKK*>S>?2{wO~ybhi`O^Ug$ z6@Kt@HB>d%*nD%d$>xausSlr62f!+Prx=39@ph4QD7q@JTjeryv&rTZoXouo@0ecz zu0y{bmumg^VTEtmBE1y(>WV7>r~Q8E2LeprJtLhTKl;)NVXEX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NXVze=|a*U zCt4F1jY<7#aN)vD(@mob7bY5G;zna){{ok;G%>oX%SPkMG@%;`!4JgNYU;^{I|S1&TP%lny15>Kl<%6B9Hc)sW$y1ZcG z2Tvx6rjopQmo@i3{b~>k_9)?f<}d&cpWP=E_7VzvO;QWrzSH#adhJkm3GH$D<_yZ} zl8I&iQAPrRo^N1z#MyH)iN%iqB-c`WjTaDy$0_6s0AzDH?oEtZ5||Dq1_zM+G62fz z5@%>lCYX4mfQ*RdoYn zdk6akkIgQ67?yix2JQ=p& ixrLRk4t!5+3I71&sj#X>^B#}@0000EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N@F`x7Y5=*5P~;dC&E%OgJ1~ZjS!3^GsrSnEw<^*ww<$|o;Ks{ zqRw%4cGnkP-sgSZ=lMQA;Xh$(rVLGn1wdE31VE{(12Fe!#$s<#geJq{&duxOaybgs zBh)57+q@|hjzfkiUYFD-)|vl zbOP8~TRv^@Ab3H1cswpf1{6`_JU z3B~8cA+@pf?mg*r8n4GqWaA^rY>8yHM3>_X8MRDVubpHt=<^7>)WNY{;g-*3nFPR6 zxEX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N zL;!%~i!x7_veG{RuDM$^UB|Dg)N~zywT#sRk=%#?0a-%!TKH8}n7d^(hk0LUv9)Oe zu$nd{kCuqpGqd9&ay&LXu(Hu~*0(lIu3iozdo2Ll-$ zX2*M?`&E_v$11Yd67jo%t7%j60PJPHbN|sjmR_Yg+)l89v$1M;c>S&@q*m7qgr@KgF1Llyv$n0F&V` z0B;Hv=SaSz81)~2pV0-VL8oH%fx#dJp2%odJ_tam{!0=Gb{hsNKJ-$Z-D`EuWJi!s moO149XPflY0aod7AM_7_EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#Nfi$<`DFDTNq+_shir4L&e zw05`-H}{rSH_vo(?)`oL?|cXTvxI*QMVCWX`&?v0o5$WS3SDBg4DeP;2>@G4LDA)q z#ZD6g7msW6q1z_`P~irPQR{`j1UgNeYH4SD)~n6q(k~3p0yJ2R9BFIe^~@||Qz1bU zP%U@cMC^7mFLVn#7K#32hFr6fC;JgKnn`aDSH$Koe5!tEGa2mP!CFKm8yG0D~Qk za{rAh9KCdxw9{M!mAWXClFWE+;W*n5fKL4o^(m>(4c_6&y&(X4`rPDKgFJsc2EYl| zdD_lh*Wi)S2}NLdIw$}#Kz=nyPoEp<(~aD+jxdk&Oj3CnKX11jFA84u+?L zg0tQxM}1!E0N*!1>FhcHE6Xd?#{z^S5ln^(QrSW_ngGCs{Wb;idD+*z2ct;|t7^NE za3rFvv7;PMHl;CJ)#lp6CONbBH{tO(ww*@G^xOFO=?hCsOPFhG_?gQwIXREV9|fSX zwX1MORlvSmd2wx^aOcgH@6|DWHN@d28;kMv;uVsa73@?J3;iH@Izi`G1J*iG$sj5* obzp-UtN^@OSf;r`M|HWGKgTBB4-+HNQ~&?~07*qoM6N<$f{aqh3IG5A literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/wild_goblins_brute_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/wild_goblins_brute_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..3a1bd70a65d6861c965a9b68f15cc30f46159e5d GIT binary patch literal 915 zcmV;E18n?>P)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NUNQPVN zVCf-{<@N{oZ?b@SkP;YolB$`WkXvHo>TXzZvnEK`>~x?F>Q`FdR1&SOGuC z8ET{IxP}s!78gh)=R%>~Zi`myONaxA0W2*pQ2vu_+ZhtcIpUTDKy6h3u(DgD{o)lB z@cmK|Aqv#%dzb*TDH|aQ0Ho8lHY+2*&tGEz&ht5hC}_q6kez(13imWYX84Wr}&-)uN8gw{po{&!4%uG)KaCE${q0@Gg-nRVkz`Hlkw63&hUHh5V^En@2 p{=xl_u5Lcq{lEX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N{PfzhoDPv$nNfvB^fMq^gj>;aS^nO6a>YnNS6xXQY2VOS|Y>{Kkuy{Nv=~) zZ#03fzRNl9d!F|>&wHK&uRbiT4ifR0Va^wpR+?hpGy^B%F(VQVp(s%lB}yb5YKjpA z=0d&MCkN5sw+~CqJ;ayZvtj z08Q74ghR-KUVi6QQ3L4e>?WVj^3Lla5EyA77YfRyQx3oX5C?_g4zfH9AZ`Qr`fZ0# zAE!ia1xO!dQbT=xNdQHO;vX2ssA#xc9@^~f*zGk&#wO@@ca!;#idfXt}Y^jZBaii(j92W$~!{PxqHovg3xh^n4w^O)aH8-b^GO4$Q zB{|S9QLAYD)i1faDw96gN9uGi>XpzRYK;3N9v`dxDrqkjtZr>v>UK7Z`Nd_{KF^7~ zEX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N>hJG7)#hNP^}> zqq$#;((d&FaJxI?AZaF38_v{|X#fGxuSFd)|C}76w)xoJsgcWO#K`C)KE7YRSOLJY zZIX#NS}?%(sv&a#w>rA0R<{@o^b(Cm9OP2L!G4L)tKVc{cW(tv3j@e$0E_QdNKK5% z_y)j-wZh8*zyAe*uBQpz3nS_lK3^}bo|||)e~H|W(bv;OVPlK>*_phGT%nOT*e_w( zHoJR2sZKP|al)cWR_2#$>~> zWz*UI@0_#qdA18*90XFz<4}i)-Rk3gU^%T`Ci@CQ;idIP)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#NH5d?QG3~pQ*R8UHx1sU2RVMvq-+L$S6G8hP* zF3Ou^B>4k+R`1<=&$;Kmcj3QBPq#!SowC~Ro4flRYoB#0&ZJXTG!jNpk|;`&Xe8XR z#ujJ~2=b&HWN=^rfRWLFL!@2IB@S=jYyemQlXB2uvsyE7^?AwPmdK=2RxG~C`RPe( z1c16}5{-nBrzW^5s&))ucu1mHyynG(k6>`tA#OXUlr=6teX$ezeGXZk0kFFPWRG(s zUahcyctAk%SiJyeU#~t+kBxl*P?RKr=QCK%I$p02kGmhY`wz48OZdknuD)HqtYJLpHhJphYeJ!rW1%{3*ZSJ3 z^)x0r3;3iVN=B{wDhmW8kCi?BY}?M?RRJg&weAj{3J9Vg31~*6=Px$>t}c#lt^@!8 N002ovPDHLkV1m=Zm5u-a literal 0 HcmV?d00001 diff --git a/middle-earth/src/main/resources/assets/middle-earth/textures/item/wild_goblins_warrior_spawn_egg.png b/middle-earth/src/main/resources/assets/middle-earth/textures/item/wild_goblins_warrior_spawn_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..12876539688f7cfc69549c774daaf290b1015573 GIT binary patch literal 849 zcmV-X1FrmuP)EX>4Tx04R}tkv&L4Q5c4wdo_ws9CC48mKjNf6@f+P3~1% z8iUrLp`RtIp{2RjhSnem`hjR}Xew%nxN%faBKwx}@SgAeINy6ft`>FE@s5CLmF+|{ zqNFofrSk>F!wM~%6fskQZ2FU3; z8-h0ko5hOWc&FIVw_+_Mg%0!+WsVqe6f`OnC{iX&0Sg6(1W_Vw{CzcloC+F63g{@z zu!f0R^CSM?ceYM$Y_vYf7lDpv*L@#^&K>yPcHOTd*Zn>Q&l6l)P5)XICO^Ql-PA&d z5ZHwCtEQ&y!o?Q!K9*Eltw|n0&gJ0k6#N*=38?#f%v{TQ*O< z^*+!0e?I>I_kn*}St;O7kC4~zCpXzL07t3G(~B#X_@4{t$;k_iR61wGDvE()(MaCx zuWzl{;v9D1STvFk_+^5@5W!%GfL{h6d7-f}H)(0$FejOleWFCQAOKL`&;mzrY40BW5sH0=}sv9Zolz!34_?wo_e zBje%vb{A1>2Vj41$F@7>MKUi5z)XC~;I66)F1MGli4o*B51Ypt_ivv+i`3~6@^YI8 z{kWZ#Oiaa5RRvX5P?SVLXLnV(^%ns8Cl~07j2nJ)vxLj-rMst>kM}14`a)5L!{I^= z`2J_zQt2EIcjvrhveZ-yModu>oL!{~3uw2`Xx~es+w$sW!RV6I0l@Ze5p_ { if (view == null || pos == null) { return DryFoliageColors.DEFAULT; } return BiomeColors.getDryFoliageColor(view, pos); - }, ModBlocks.BIRD_NEST); + }, BlocksWT.BIRD_NEST); } } diff --git a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/block/ModBlocks.java b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/block/BlocksWT.java similarity index 81% rename from of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/block/ModBlocks.java rename to of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/block/BlocksWT.java index 2e69bc501e..a88d02a744 100644 --- a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/block/ModBlocks.java +++ b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/block/BlocksWT.java @@ -10,7 +10,6 @@ import net.minecraft.registry.Registry; import net.minecraft.registry.RegistryKey; import net.minecraft.registry.RegistryKeys; -import net.minecraft.util.Identifier; import net.sevenstars.of_beasts_and_wild_things.OfBeastsAndWildThings; import net.sevenstars.of_beasts_and_wild_things.block.custom.BirdNest; import net.sevenstars.of_beasts_and_wild_things.datageneration.content.TranslationEntries; @@ -19,13 +18,13 @@ import java.util.List; import java.util.function.Function; -public class ModBlocks { +public class BlocksWT { public static final Block BIRD_NEST = registerBlock("bird_nest", BirdNest::new, AbstractBlock.Settings.copy(Blocks.OAK_PLANKS).nonOpaque().noCollision(), ItemGroupsWT.BLOCKS_CONTENTS); public static Block registerBlock(String name, Function factory, AbstractBlock.Settings settings, List group){ - Block block = (Block)factory.apply(settings.registryKey(keyOfBlock(name))); + Block block = factory.apply(settings.registryKey(keyOfBlock(name))); registerBlockItem(name, block); group.add(block.asItem().getDefaultStack()); TranslationEntries.blockEntries.add(block); @@ -33,18 +32,18 @@ public static Block registerBlock(String name, Function keyOfBlock(String id) { - return RegistryKey.of(RegistryKeys.BLOCK, Identifier.of(OfBeastsAndWildThings.MOD_ID, id)); + return RegistryKey.of(RegistryKeys.BLOCK, OfBeastsAndWildThings.of(id)); } public static RegistryKey keyOfItem(String id) { - return RegistryKey.of(RegistryKeys.ITEM, Identifier.of(OfBeastsAndWildThings.MOD_ID, id)); + return RegistryKey.of(RegistryKeys.ITEM, OfBeastsAndWildThings.of(id)); } public static void registerModBlocks() { diff --git a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/datageneration/models/SimpleItemModels.java b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/datageneration/models/SimpleItemModels.java index 65341ec9b5..e84d70ae70 100644 --- a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/datageneration/models/SimpleItemModels.java +++ b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/datageneration/models/SimpleItemModels.java @@ -1,7 +1,6 @@ package net.sevenstars.of_beasts_and_wild_things.datageneration.models; import net.minecraft.item.Item; -import net.sevenstars.of_beasts_and_wild_things.item.ItemsWT; import java.util.ArrayList; import java.util.List; diff --git a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/datageneration/providers/EntityTagProvider.java b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/datageneration/providers/EntityTagProvider.java index 388c7885cf..bf7a2a8c68 100644 --- a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/datageneration/providers/EntityTagProvider.java +++ b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/datageneration/providers/EntityTagProvider.java @@ -6,8 +6,6 @@ import net.minecraft.registry.RegistryKeys; import net.minecraft.registry.RegistryWrapper; import net.minecraft.registry.tag.TagKey; -import net.minecraft.util.Identifier; -import net.minecraft.world.biome.BiomeKeys; import net.sevenstars.of_beasts_and_wild_things.OfBeastsAndWildThings; import net.sevenstars.of_beasts_and_wild_things.entity.EntitiesWT; @@ -21,7 +19,7 @@ public EntityTagProvider(FabricDataOutput output, CompletableFuture swan_food = TagKey.of(RegistryKeys.ITEM, Identifier.of(OfBeastsAndWildThings.MOD_ID, "swan_food")); + TagKey swan_food = TagKey.of(RegistryKeys.ITEM, OfBeastsAndWildThings.of("swan_food")); valueLookupBuilder(swan_food).add(Items.TADPOLE_BUCKET); } diff --git a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/EntitiesWT.java b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/EntitiesWT.java index 896db57d2f..26466508c9 100644 --- a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/EntitiesWT.java +++ b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/EntitiesWT.java @@ -8,7 +8,6 @@ import net.minecraft.registry.Registry; import net.minecraft.registry.RegistryKey; import net.minecraft.registry.RegistryKeys; -import net.minecraft.util.Identifier; import net.sevenstars.of_beasts_and_wild_things.OfBeastsAndWildThings; import net.sevenstars.of_beasts_and_wild_things.datageneration.content.TranslationEntries; import net.sevenstars.of_beasts_and_wild_things.entity.deer.DeerEntity; @@ -39,7 +38,7 @@ private static EntityType register(String id, EntityType.B } private static RegistryKey> keyOf(String id) { - return RegistryKey.of(RegistryKeys.ENTITY_TYPE, Identifier.of(OfBeastsAndWildThings.MOD_ID, id)); + return RegistryKey.of(RegistryKeys.ENTITY_TYPE, OfBeastsAndWildThings.of(id)); } public static void registerModEntities() { diff --git a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/ai/brain/MemoryModulesWT.java b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/ai/brain/MemoryModulesWT.java index c705ba0785..e4b7415a18 100644 --- a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/ai/brain/MemoryModulesWT.java +++ b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/ai/brain/MemoryModulesWT.java @@ -6,7 +6,6 @@ import net.minecraft.entity.ai.brain.MemoryModuleType; import net.minecraft.registry.Registries; import net.minecraft.registry.Registry; -import net.minecraft.util.Identifier; import net.sevenstars.of_beasts_and_wild_things.OfBeastsAndWildThings; import java.util.Optional; @@ -25,11 +24,11 @@ public Optional>> getCodec() { } private static MemoryModuleType register(String id, Codec codec) { - return Registry.register(Registries.MEMORY_MODULE_TYPE, Identifier.of(OfBeastsAndWildThings.MOD_ID, id), new MemoryModuleType<>(Optional.of(codec))); + return Registry.register(Registries.MEMORY_MODULE_TYPE, OfBeastsAndWildThings.of(id), new MemoryModuleType<>(Optional.of(codec))); } private static MemoryModuleType register(String id) { - return Registry.register(Registries.MEMORY_MODULE_TYPE, Identifier.of(OfBeastsAndWildThings.MOD_ID, id), new MemoryModuleType<>(Optional.empty())); + return Registry.register(Registries.MEMORY_MODULE_TYPE, OfBeastsAndWildThings.of(id), new MemoryModuleType<>(Optional.empty())); } public static void registerModMemoryModules() { diff --git a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/ai/brain/SensorsWT.java b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/ai/brain/SensorsWT.java index daf137bbe5..aa70b17a07 100644 --- a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/ai/brain/SensorsWT.java +++ b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/ai/brain/SensorsWT.java @@ -5,7 +5,6 @@ import net.minecraft.entity.ai.brain.sensor.TemptationsSensor; import net.minecraft.registry.Registries; import net.minecraft.registry.Registry; -import net.minecraft.util.Identifier; import net.sevenstars.of_beasts_and_wild_things.OfBeastsAndWildThings; import net.sevenstars.of_beasts_and_wild_things.entity.ai.brain.sensor.SwanAttackablesSensor; import net.sevenstars.of_beasts_and_wild_things.entity.swan.SwanBrain; @@ -18,7 +17,7 @@ public class SensorsWT { public static final SensorType SWAN_TEMPTATIONS = register("swan_temptations", () -> new TemptationsSensor(SwanBrain.getTemptItemPredicate())); private static > SensorType register(String id, Supplier factory) { - return Registry.register(Registries.SENSOR_TYPE, Identifier.of(OfBeastsAndWildThings.MOD_ID, id), new SensorType<>(factory)); + return Registry.register(Registries.SENSOR_TYPE, OfBeastsAndWildThings.of(id), new SensorType<>(factory)); } public static void registerModSensors() { diff --git a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/ai/brain/task/DigInDirtTask.java b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/ai/brain/task/DigInDirtTask.java index 919d5f3ae4..89a93f9792 100644 --- a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/ai/brain/task/DigInDirtTask.java +++ b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/ai/brain/task/DigInDirtTask.java @@ -4,23 +4,19 @@ import net.minecraft.block.Block; import net.minecraft.block.Blocks; import net.minecraft.entity.EntityPose; -import net.minecraft.entity.EntityType; import net.minecraft.entity.ItemEntity; import net.minecraft.entity.ai.brain.MemoryModuleState; import net.minecraft.entity.ai.brain.MemoryModuleType; import net.minecraft.entity.ai.brain.task.MultiTickTask; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.particle.BlockStateParticleEffect; import net.minecraft.particle.ParticleTypes; -import net.minecraft.registry.tag.BlockTags; import net.minecraft.server.world.ServerWorld; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; import net.minecraft.world.GameRules; import net.sevenstars.of_beasts_and_wild_things.entity.pheasant.PheasantEntity; -import net.sevenstars.of_beasts_and_wild_things.entity.snail.SnailEntity; public class DigInDirtTask extends MultiTickTask { public DigInDirtTask() { diff --git a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/ai/brain/task/EatCropTask.java b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/ai/brain/task/EatCropTask.java index e74e454ece..e5d840158d 100644 --- a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/ai/brain/task/EatCropTask.java +++ b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/ai/brain/task/EatCropTask.java @@ -3,11 +3,8 @@ import com.google.common.collect.ImmutableMap; import net.minecraft.block.Block; import net.minecraft.block.Blocks; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.SpawnReason; import net.minecraft.entity.ai.brain.MemoryModuleState; import net.minecraft.entity.ai.brain.MemoryModuleType; -import net.minecraft.entity.ai.brain.WalkTarget; import net.minecraft.entity.ai.brain.task.MultiTickTask; import net.minecraft.particle.BlockStateParticleEffect; import net.minecraft.particle.ParticleTypes; @@ -16,7 +13,6 @@ import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; import net.minecraft.world.GameRules; -import net.sevenstars.of_beasts_and_wild_things.OfBeastsAndWildThings; import net.sevenstars.of_beasts_and_wild_things.entity.snail.SnailEntity; public class EatCropTask extends MultiTickTask { diff --git a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/ai/brain/task/SearchForHomeTask.java b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/ai/brain/task/SearchForHomeTask.java index f59c67b05c..bd80f76eba 100644 --- a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/ai/brain/task/SearchForHomeTask.java +++ b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/ai/brain/task/SearchForHomeTask.java @@ -1,18 +1,13 @@ package net.sevenstars.of_beasts_and_wild_things.entity.ai.brain.task; import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.block.SweetBerryBushBlock; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.ai.brain.MemoryModuleType; -import net.minecraft.entity.ai.brain.WalkTarget; import net.minecraft.entity.ai.brain.task.SingleTickTask; import net.minecraft.entity.ai.brain.task.TaskTriggerer; import net.minecraft.registry.tag.TagKey; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.GlobalPos; -import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; import java.util.Optional; diff --git a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/deer/DeerBrain.java b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/deer/DeerBrain.java index 10f8885da7..e10ea6784d 100644 --- a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/deer/DeerBrain.java +++ b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/deer/DeerBrain.java @@ -5,9 +5,7 @@ import com.google.common.collect.ImmutableSet; import com.mojang.datafixers.util.Pair; import com.mojang.serialization.Dynamic; -import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; -import net.minecraft.entity.Entity; import net.minecraft.entity.ai.brain.Activity; import net.minecraft.entity.ai.brain.Brain; import net.minecraft.entity.ai.brain.MemoryModuleState; @@ -15,12 +13,10 @@ import net.minecraft.entity.ai.brain.sensor.Sensor; import net.minecraft.entity.ai.brain.sensor.SensorType; import net.minecraft.entity.ai.brain.task.*; -import net.minecraft.entity.ai.goal.FleeEntityGoal; import net.minecraft.entity.player.PlayerEntity; import net.sevenstars.api.entity.ai.brain.task.EatBerriesTask; import net.sevenstars.api.entity.ai.brain.task.FleeFromEntityTask; import net.sevenstars.api.entity.ai.brain.task.MoveTowardsBlockTask; -import net.sevenstars.of_beasts_and_wild_things.entity.ai.brain.task.DigInDirtTask; public class DeerBrain { protected static final ImmutableList>> SENSORS; diff --git a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/deer/DeerEntityRenderer.java b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/deer/DeerEntityRenderer.java index d7d176b34f..724f599158 100644 --- a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/deer/DeerEntityRenderer.java +++ b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/deer/DeerEntityRenderer.java @@ -28,7 +28,7 @@ public DeerEntityRenderer(EntityRendererFactory.Context context) { @Override public Identifier getTexture(DeerEntityRenderState state) { - return Identifier.of(OfBeastsAndWildThings.MOD_ID, LOCATION_BY_VARIANT.get(state.variant)); + return OfBeastsAndWildThings.of(LOCATION_BY_VARIANT.get(state.variant)); } @Override diff --git a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/model/EntityModelLayersWT.java b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/model/EntityModelLayersWT.java index 7808882b63..9fe39cf752 100644 --- a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/model/EntityModelLayersWT.java +++ b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/model/EntityModelLayersWT.java @@ -5,7 +5,6 @@ import net.fabricmc.fabric.api.client.rendering.v1.EntityModelLayerRegistry; import net.minecraft.client.model.TexturedModelData; import net.minecraft.client.render.entity.model.EntityModelLayer; -import net.minecraft.util.Identifier; import net.sevenstars.of_beasts_and_wild_things.OfBeastsAndWildThings; import net.sevenstars.of_beasts_and_wild_things.entity.deer.DeerEntityModel; import net.sevenstars.of_beasts_and_wild_things.entity.pheasant.PheasantEntityModel; @@ -22,7 +21,7 @@ public class EntityModelLayersWT { public static final EntityModelLayer DEER = EntityModelLayersWT.registerEntityModelLayer("deer", DeerEntityModel.getTexturedModelData()); private static EntityModelLayer registerEntityModelLayer(String registryName, TexturedModelData modelData) { - EntityModelLayer entityModelLayer = new EntityModelLayer(Identifier.of(OfBeastsAndWildThings.MOD_ID, registryName), "main"); + EntityModelLayer entityModelLayer = new EntityModelLayer(OfBeastsAndWildThings.of(registryName), "main"); EntityModelLayerRegistry.registerModelLayer(entityModelLayer, () -> modelData); return entityModelLayer; } diff --git a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/pheasant/PheasantEntity.java b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/pheasant/PheasantEntity.java index a579c8203b..2c41ac846f 100644 --- a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/pheasant/PheasantEntity.java +++ b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/pheasant/PheasantEntity.java @@ -14,7 +14,6 @@ import net.minecraft.entity.passive.PassiveEntity; import net.minecraft.item.ItemStack; import net.minecraft.server.world.ServerWorld; -import net.minecraft.sound.BlockSoundGroup; import net.minecraft.sound.SoundEvent; import net.minecraft.sound.SoundEvents; import net.minecraft.storage.ReadView; diff --git a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/pheasant/PheasantEntityModel.java b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/pheasant/PheasantEntityModel.java index bd1e366384..e2f6e16e5f 100644 --- a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/pheasant/PheasantEntityModel.java +++ b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/pheasant/PheasantEntityModel.java @@ -2,7 +2,6 @@ import net.minecraft.client.model.*; import net.minecraft.client.render.entity.animation.Animation; -import net.minecraft.client.render.entity.animation.CamelAnimations; import net.minecraft.client.render.entity.model.EntityModel; public class PheasantEntityModel extends EntityModel { diff --git a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/pheasant/PheasantEntityRenderer.java b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/pheasant/PheasantEntityRenderer.java index 95857cc443..5435531c6e 100644 --- a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/pheasant/PheasantEntityRenderer.java +++ b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/pheasant/PheasantEntityRenderer.java @@ -27,7 +27,7 @@ public PheasantEntityRenderer(EntityRendererFactory.Context context) { @Override public Identifier getTexture(PheasantEntityRenderState state) { - return Identifier.of(OfBeastsAndWildThings.MOD_ID, LOCATION_BY_VARIANT.get(state.variant)); + return OfBeastsAndWildThings.of(LOCATION_BY_VARIANT.get(state.variant)); } @Override diff --git a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/pheasant/PheasantEntityVariant.java b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/pheasant/PheasantEntityVariant.java index 014fdff419..61fa7be5a9 100644 --- a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/pheasant/PheasantEntityVariant.java +++ b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/pheasant/PheasantEntityVariant.java @@ -1,7 +1,5 @@ package net.sevenstars.of_beasts_and_wild_things.entity.pheasant; -import net.sevenstars.of_beasts_and_wild_things.entity.snail.SnailEntityVariant; - import java.util.Arrays; import java.util.Comparator; diff --git a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/snail/SnailBrain.java b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/snail/SnailBrain.java index 8ee6174913..8d719c27a5 100644 --- a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/snail/SnailBrain.java +++ b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/snail/SnailBrain.java @@ -5,7 +5,6 @@ import com.google.common.collect.ImmutableSet; import com.mojang.datafixers.util.Pair; import com.mojang.serialization.Dynamic; -import net.minecraft.block.Blocks; import net.minecraft.entity.ai.brain.Activity; import net.minecraft.entity.ai.brain.Brain; import net.minecraft.entity.ai.brain.MemoryModuleState; @@ -14,9 +13,7 @@ import net.minecraft.entity.ai.brain.sensor.SensorType; import net.minecraft.entity.ai.brain.task.*; import net.minecraft.registry.tag.BlockTags; -import net.sevenstars.api.SevenStarsApi; import net.sevenstars.api.entity.ai.brain.task.MoveTowardsBlockTask; -import net.sevenstars.of_beasts_and_wild_things.entity.ai.brain.task.DigInDirtTask; import net.sevenstars.of_beasts_and_wild_things.entity.ai.brain.task.EatCropTask; public class SnailBrain { diff --git a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/snail/SnailEntityModel.java b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/snail/SnailEntityModel.java index e43a1b1128..b531a00abd 100644 --- a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/snail/SnailEntityModel.java +++ b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/snail/SnailEntityModel.java @@ -2,9 +2,7 @@ import net.minecraft.client.model.*; import net.minecraft.client.render.entity.animation.Animation; -import net.minecraft.client.render.entity.animation.CamelAnimations; import net.minecraft.client.render.entity.model.EntityModel; -import net.minecraft.client.render.entity.state.LivingEntityRenderState; import static java.lang.Math.PI; diff --git a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/snail/SnailEntityRenderer.java b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/snail/SnailEntityRenderer.java index ddff052863..d996fd3714 100644 --- a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/snail/SnailEntityRenderer.java +++ b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/snail/SnailEntityRenderer.java @@ -32,7 +32,7 @@ public SnailEntityRenderer(EntityRendererFactory.Context context) { @Override public Identifier getTexture(SnailEntityRenderState state) { - return Identifier.of(OfBeastsAndWildThings.MOD_ID, LOCATION_BY_VARIANT.get(state.variant)); + return OfBeastsAndWildThings.of(LOCATION_BY_VARIANT.get(state.variant)); } @Override diff --git a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/swan/SwanBrain.java b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/swan/SwanBrain.java index a329067631..9c31b70693 100644 --- a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/swan/SwanBrain.java +++ b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/swan/SwanBrain.java @@ -28,7 +28,7 @@ import net.sevenstars.api.entity.ai.brain.task.StrollAroundHomeTask; import net.sevenstars.api.entity.ai.brain.task.StrollInWaterTask; import net.sevenstars.of_beasts_and_wild_things.OfBeastsAndWildThings; -import net.sevenstars.of_beasts_and_wild_things.block.ModBlocks; +import net.sevenstars.of_beasts_and_wild_things.block.BlocksWT; import net.sevenstars.of_beasts_and_wild_things.entity.EntitiesWT; import net.sevenstars.of_beasts_and_wild_things.entity.ai.brain.MemoryModulesWT; import net.sevenstars.of_beasts_and_wild_things.entity.ai.brain.SensorsWT; @@ -75,7 +75,7 @@ private static void addIdleActivities(Brain brain) { brain.setTaskList(Activity.IDLE, ImmutableList.of( Pair.of(0, new BreedTask(EntitiesWT.SWAN)), Pair.of(1, new RandomTask(ImmutableMap.of(MemoryModuleType.HOME, MemoryModuleState.VALUE_ABSENT), ImmutableList.of( - Pair.of(SearchForHomeTask.create(ModBlocks.BIRD_NEST), 2), + Pair.of(SearchForHomeTask.create(BlocksWT.BIRD_NEST), 2), Pair.of(StrollTask.create(1.0F), 1) ))), Pair.of(2, new RandomTask(ImmutableMap.of(MemoryModuleType.HOME, MemoryModuleState.VALUE_PRESENT), ImmutableList.of( @@ -92,7 +92,7 @@ private static void addIdleActivities(Brain brain) { private static void addRestActivities(Brain brain) { brain.setTaskList(Activity.REST, ImmutableList.of( Pair.of(0, new RandomTask(ImmutableMap.of(MemoryModuleType.HOME, MemoryModuleState.VALUE_ABSENT), ImmutableList.of( - Pair.of(SearchForHomeTask.create(ModBlocks.BIRD_NEST), 2), + Pair.of(SearchForHomeTask.create(BlocksWT.BIRD_NEST), 2), Pair.of(StrollTask.create(1.0F), 1) ))), Pair.of(1, MoveTowardsPosMemoryTask.create(MemoryModuleType.HOME, 1.0f, 2, 20, 300)), @@ -116,7 +116,7 @@ private static void addFightActivities(SwanEntity swan, Brain brain) private static void addBabyIdleActivities(Brain brain) { brain.setTaskList(ActivitiesAPI.BABY_IDLE, ImmutableList.of( Pair.of(0, new RandomTask(ImmutableMap.of(MemoryModuleType.HOME, MemoryModuleState.VALUE_ABSENT), ImmutableList.of( - Pair.of(SearchForHomeTask.create(ModBlocks.BIRD_NEST), 2), + Pair.of(SearchForHomeTask.create(BlocksWT.BIRD_NEST), 2), Pair.of(StrollTask.create(1.0F), 1) ))), Pair.of(1, new RandomTask(ImmutableMap.of(MemoryModuleType.NEAREST_VISIBLE_ADULT, MemoryModuleState.VALUE_ABSENT), ImmutableList.of( @@ -131,7 +131,7 @@ private static void addBabyIdleActivities(Brain brain) { private static void addBabyRestActivities(Brain brain) { brain.setTaskList(ActivitiesAPI.BABY_REST, ImmutableList.of( Pair.of(0, new RandomTask(ImmutableMap.of(MemoryModuleType.HOME, MemoryModuleState.VALUE_ABSENT), ImmutableList.of( - Pair.of(SearchForHomeTask.create(ModBlocks.BIRD_NEST), 2), + Pair.of(SearchForHomeTask.create(BlocksWT.BIRD_NEST), 2), Pair.of(StrollTask.create(1.0F), 1) ))), Pair.of(1, MoveTowardsPosMemoryTask.create(MemoryModuleType.HOME, 1.0f, 2, 20, 300)), diff --git a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/swan/SwanEntity.java b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/swan/SwanEntity.java index 368e362c82..64d1ec96e7 100644 --- a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/swan/SwanEntity.java +++ b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/entity/swan/SwanEntity.java @@ -47,7 +47,7 @@ import net.sevenstars.api.entity.ai.brain.MemoryModulesAPI; import net.sevenstars.api.entity.ai.brain.SchedulesAPI; import net.sevenstars.of_beasts_and_wild_things.OfBeastsAndWildThings; -import net.sevenstars.of_beasts_and_wild_things.block.ModBlocks; +import net.sevenstars.of_beasts_and_wild_things.block.BlocksWT; import net.sevenstars.of_beasts_and_wild_things.block.custom.BirdNest; import net.sevenstars.of_beasts_and_wild_things.entity.EntitiesWT; import net.sevenstars.of_beasts_and_wild_things.entity.ai.brain.MemoryModulesWT; @@ -115,7 +115,7 @@ private void updateHome() { Optional optional = this.getBrain().getOptionalRegisteredMemory(MemoryModuleType.HOME); if(optional.isPresent()) { - if(!this.getWorld().getBlockState(optional.get().pos()).isOf(ModBlocks.BIRD_NEST)) { + if(!this.getWorld().getBlockState(optional.get().pos()).isOf(BlocksWT.BIRD_NEST)) { this.getBrain().forget(MemoryModuleType.HOME); } } @@ -141,7 +141,7 @@ public void startSleeping() { if(rand < 0.15) { BlockPos pos = optional.get().pos(); BlockState homeBlock = this.getWorld().getBlockState(optional.get().pos()); - if(homeBlock.isOf(ModBlocks.BIRD_NEST) && homeBlock.get(BirdNest.NEST_LEVEL) < 2) { + if(homeBlock.isOf(BlocksWT.BIRD_NEST) && homeBlock.get(BirdNest.NEST_LEVEL) < 2) { this.getWorld().setBlockState(pos, homeBlock.with(BirdNest.NEST_LEVEL, homeBlock.get(BirdNest.NEST_LEVEL) + 1)); } } diff --git a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/item/EggItemsWT.java b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/item/EggItemsWT.java index dfa8594d21..a3c07f8d19 100644 --- a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/item/EggItemsWT.java +++ b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/item/EggItemsWT.java @@ -6,7 +6,6 @@ import net.minecraft.registry.Registry; import net.minecraft.registry.RegistryKey; import net.minecraft.registry.RegistryKeys; -import net.minecraft.util.Identifier; import net.sevenstars.of_beasts_and_wild_things.OfBeastsAndWildThings; import net.sevenstars.of_beasts_and_wild_things.datageneration.content.TranslationEntries; import net.sevenstars.of_beasts_and_wild_things.datageneration.models.SimpleItemModels; @@ -27,15 +26,15 @@ public class EggItemsWT { public static final Item SNAIL_SPAWN_EGG = registerItem("snail_spawn_egg", (settings) -> new SpawnEggItem(EntitiesWT.SNAIL, settings), new Item.Settings()); - public static RegistryKey keyOfItem(String id) { - return RegistryKey.of(RegistryKeys.ITEM, Identifier.of(OfBeastsAndWildThings.MOD_ID, id)); + public static RegistryKey keyOfItem(String idPath) { + return RegistryKey.of(RegistryKeys.ITEM, OfBeastsAndWildThings.of(idPath)); } - private static Item registerItem(String name, Function factory, Item.Settings settings) { - Item item = factory.apply(settings.registryKey(keyOfItem(name))); + private static Item registerItem(String idPath, Function factory, Item.Settings settings) { + Item item = factory.apply(settings.registryKey(keyOfItem(idPath))); ItemGroupsWT.SPAWN_EGGS_CONTENTS.add(item.getDefaultStack()); SimpleItemModels.items.add(item); TranslationEntries.itemEntries.add(item); - return Registry.register(Registries.ITEM, Identifier.of(OfBeastsAndWildThings.MOD_ID, name), item); + return Registry.register(Registries.ITEM, OfBeastsAndWildThings.of(idPath), item); } public static void registerModItems() { diff --git a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/item/ItemGroupsWT.java b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/item/ItemGroupsWT.java index 8a32a6f791..613cf314d4 100644 --- a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/item/ItemGroupsWT.java +++ b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/item/ItemGroupsWT.java @@ -6,9 +6,7 @@ import net.minecraft.registry.Registries; import net.minecraft.registry.Registry; import net.minecraft.text.Text; -import net.minecraft.util.Identifier; import net.sevenstars.of_beasts_and_wild_things.OfBeastsAndWildThings; -import net.sevenstars.of_beasts_and_wild_things.block.ModBlocks; import java.util.LinkedList; import java.util.List; @@ -35,7 +33,7 @@ public class ItemGroupsWT { .build(); public static void register() { - Registry.register(Registries.ITEM_GROUP, Identifier.of(OfBeastsAndWildThings.MOD_ID, "wild_things"), WILD_THINGS); + Registry.register(Registries.ITEM_GROUP, OfBeastsAndWildThings.of("wild_things"), WILD_THINGS); } } diff --git a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/item/ItemsWT.java b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/item/ItemsWT.java index 53f6201151..78db4eca74 100644 --- a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/item/ItemsWT.java +++ b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/item/ItemsWT.java @@ -7,7 +7,6 @@ import net.minecraft.registry.Registry; import net.minecraft.registry.RegistryKey; import net.minecraft.registry.RegistryKeys; -import net.minecraft.util.Identifier; import net.sevenstars.of_beasts_and_wild_things.OfBeastsAndWildThings; import net.sevenstars.of_beasts_and_wild_things.datageneration.content.TranslationEntries; import net.sevenstars.of_beasts_and_wild_things.datageneration.models.SimpleItemModels; @@ -40,16 +39,16 @@ public class ItemsWT { public static final Item SWAN_EGG = registerItem("swan_egg", SwanEggItem::new, new Item.Settings().maxCount(16)); - private static Item registerItem(String name, Function factory, Item.Settings settings) { - Item item = factory.apply(settings.registryKey(keyOfItem(name))); + private static Item registerItem(String idPath, Function factory, Item.Settings settings) { + Item item = factory.apply(settings.registryKey(keyOfItem(idPath))); ItemGroupsWT.ITEMS_CONTENTS.add(item.getDefaultStack()); SimpleItemModels.items.add(item); TranslationEntries.itemEntries.add(item); - return Registry.register(Registries.ITEM, Identifier.of(OfBeastsAndWildThings.MOD_ID, name), item); + return Registry.register(Registries.ITEM, OfBeastsAndWildThings.of(idPath), item); } - public static RegistryKey keyOfItem(String id) { - return RegistryKey.of(RegistryKeys.ITEM, Identifier.of(OfBeastsAndWildThings.MOD_ID, id)); + public static RegistryKey keyOfItem(String idPath) { + return RegistryKey.of(RegistryKeys.ITEM, OfBeastsAndWildThings.of(idPath)); } public static void registerModItems() { diff --git a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/utils/BiomeTagsWT.java b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/utils/BiomeTagsWT.java index 0dfd0729f9..ffa053750d 100644 --- a/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/utils/BiomeTagsWT.java +++ b/of-beasts-and-wild-things/src/main/java/net/sevenstars/of_beasts_and_wild_things/utils/BiomeTagsWT.java @@ -8,8 +8,8 @@ import net.sevenstars.of_beasts_and_wild_things.OfBeastsAndWildThings; public class BiomeTagsWT { - public static TagKey SNAIL_SPAWNS = TagKey.of(RegistryKeys.BIOME, Identifier.of(OfBeastsAndWildThings.MOD_ID, "snail_spawns")); - public static TagKey PHEASANT_SPAWNS = TagKey.of(RegistryKeys.BIOME, Identifier.of(OfBeastsAndWildThings.MOD_ID, "pheasant_spawns")); - public static TagKey DEER_SPAWNS = TagKey.of(RegistryKeys.BIOME, Identifier.of(OfBeastsAndWildThings.MOD_ID, "deer_spawns")); + public static TagKey SNAIL_SPAWNS = TagKey.of(RegistryKeys.BIOME, OfBeastsAndWildThings.of("snail_spawns")); + public static TagKey PHEASANT_SPAWNS = TagKey.of(RegistryKeys.BIOME, OfBeastsAndWildThings.of("pheasant_spawns")); + public static TagKey DEER_SPAWNS = TagKey.of(RegistryKeys.BIOME, OfBeastsAndWildThings.of("deer_spawns")); } diff --git a/sevenstars-api/src/main/java/net/sevenstars/api/dtos/WeightedIdentifier.java b/sevenstars-api/src/main/java/net/sevenstars/api/dtos/WeightedIdentifier.java new file mode 100644 index 0000000000..acf363f755 --- /dev/null +++ b/sevenstars-api/src/main/java/net/sevenstars/api/dtos/WeightedIdentifier.java @@ -0,0 +1,47 @@ +package net.sevenstars.api.dtos; + +import net.minecraft.nbt.NbtElement; +import net.minecraft.nbt.NbtString; +import net.minecraft.registry.RegistryKey; +import net.minecraft.util.Identifier; + +public class WeightedIdentifier extends WeightedItem { + public WeightedIdentifier(NbtElement element){ + super(element); + + if(element.asString().isPresent()){ + this.item = Identifier.of(element.asString().get()); + } else if(element.asCompound().isPresent()) { + var potentialId = element.asCompound().get().getString("id"); + potentialId.ifPresent(integer -> this.item = Identifier.of(potentialId.get())); + } + } + public WeightedIdentifier(Identifier value) { + super(value); + } + public WeightedIdentifier(Identifier value, int i) { + super(value, i); + } + public static WeightedIdentifier fromIdentifier(Identifier id){ + return new WeightedIdentifier(id, 1); + } + public static WeightedIdentifier fromKey(RegistryKey key){ + return new WeightedIdentifier(key.getValue(), 1); + } + + @Override + public WeightedIdentifier withWeight(int newWeight) { + this.weight = newWeight; + return this; + } + + @Override + public NbtElement getNbt(){ + NbtElement newNbt = super.getNbt(); + if(newNbt == null) + return NbtString.of(item.toString()); + + newNbt.asCompound().get().putString("id", this.item.toString()); + return newNbt; + } +} diff --git a/sevenstars-api/src/main/java/net/sevenstars/api/dtos/WeightedItem.java b/sevenstars-api/src/main/java/net/sevenstars/api/dtos/WeightedItem.java new file mode 100644 index 0000000000..41c0a2031e --- /dev/null +++ b/sevenstars-api/src/main/java/net/sevenstars/api/dtos/WeightedItem.java @@ -0,0 +1,55 @@ +package net.sevenstars.api.dtos; + +import net.minecraft.nbt.NbtCompound; +import net.minecraft.nbt.NbtElement; + +public abstract class WeightedItem { + protected int weight; + protected T item; + + public WeightedItem(){ + this.item = null; + this.weight = 1; + } + + public WeightedItem(T item, int weight){ + this.item = item; + this.weight = weight; + } + + public WeightedItem(T item){ + this(item, 1); + } + + public WeightedItem(NbtElement element) { + this.weight = 1; + if(element.asCompound().isPresent()){ + var potentialWeight = element.asCompound().get().getInt("weight"); + potentialWeight.ifPresent(integer -> this.weight = integer); + } + } + + public T getItem() { + return item; + } + + public int getWeight(){ + return weight; + } + + public abstract WeightedItem withWeight(int newWeight); + + public NbtElement getNbt(){ + if(weight != 1){ + NbtCompound compound = new NbtCompound(); + if(weight != 1) + compound.putInt("weight", weight); + return compound; + } + return null; + } + + public boolean isSame(T differentItem) { + return this.item == differentItem; + } +} diff --git a/sevenstars-api/src/main/java/net/sevenstars/api/dtos/WeightedPool.java b/sevenstars-api/src/main/java/net/sevenstars/api/dtos/WeightedPool.java new file mode 100644 index 0000000000..055f59385f --- /dev/null +++ b/sevenstars-api/src/main/java/net/sevenstars/api/dtos/WeightedPool.java @@ -0,0 +1,74 @@ +package net.sevenstars.api.dtos; + +import net.minecraft.nbt.NbtList; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +public class WeightedPool { + final static Random RANDOM = new Random(); + + public List elements; + + public WeightedPool(){ + this.elements = new ArrayList<>(); + } + public WeightedPool(List elements){ + this.elements = elements; + } + public WeightedPool(T elements){ + this.elements = List.of(elements); + } + + public T get(int index){ + return this.elements.get(index); + } + + public T getRandom(){ + List indexes = new ArrayList<>(); + for(int i = 0; i < elements.size(); i++){ + for(int j = 0; j < elements.get(i).weight; j++){ + indexes.add(i); + } + } + if(indexes.isEmpty()) + return null; + int randomIndex = RANDOM.nextInt(indexes.size()); + return elements.get(indexes.get(randomIndex)); + } + + public boolean isEmpty(){ + return this.elements.isEmpty(); + } + + public boolean isFilled(){ + return !isEmpty(); + } + + public int size(){ + if(this.elements == null) + return 0; + return this.elements.size(); + } + + public NbtList getNbt() { + NbtList nbtList = new NbtList(); + for(int i = 0; i < this.elements.size(); i++){ + nbtList.add(i, this.elements.get(i).getNbt()); + } + return nbtList; + } + + public void add(T value){ + this.elements.add(value); + } + + public void addAll(List values){ + this.elements.addAll(values); + } + + public void clear(){ + this.elements.clear(); + } +} diff --git a/sevenstars-api/src/main/java/net/sevenstars/api/registries/DynamicRegistries.java b/sevenstars-api/src/main/java/net/sevenstars/api/registries/DynamicRegistries.java new file mode 100644 index 0000000000..78e656bc3a --- /dev/null +++ b/sevenstars-api/src/main/java/net/sevenstars/api/registries/DynamicRegistries.java @@ -0,0 +1,22 @@ +package net.sevenstars.api.registries; + +import net.minecraft.registry.Registerable; +import net.minecraft.registry.Registry; +import net.minecraft.registry.RegistryEntryLookup; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.entry.RegistryEntry; +import net.minecraft.util.Identifier; + +import java.util.Optional; + +public class DynamicRegistries { + + public static T register(Registerable context, RegistryEntryLookup registryEntryLookup, RegistryKey registryKey, T element) { + Optional> optionalRegistryEntry = registryEntryLookup.getOptional(registryKey); + optionalRegistryEntry.ifPresent(reference -> context.register(registryKey, element)); + return element; + } + public static RegistryKey of(RegistryKey> key, Identifier id) { + return RegistryKey.of(key, id); + } +} diff --git a/sevenstars-api/src/main/java/net/sevenstars/api/utils/IdentifierUtil.java b/sevenstars-api/src/main/java/net/sevenstars/api/utils/IdentifierUtil.java new file mode 100644 index 0000000000..6c845860f1 --- /dev/null +++ b/sevenstars-api/src/main/java/net/sevenstars/api/utils/IdentifierUtil.java @@ -0,0 +1,36 @@ +package net.sevenstars.api.utils; + +import net.minecraft.util.Identifier; +import net.sevenstars.api.SevenStarsApi; + +public class IdentifierUtil { + public static Identifier getIdentifierFromString(String id){ + if(id.contains(":") && id.split(":").length == 2){ + return Identifier.of(id.split(":")[0], id.split(":")[1]); + } + return Identifier.of(SevenStarsApi.MOD_ID, id + "_error"); + } + + public static Identifier build(String key, String name) { + return Identifier.of(key, name); + } + + public static Identifier buildAggregate(String key, String... names) { + return build(key, createAggregateValue('.', names)); + } + + public static String createAggregateValue(char character, String... names){ + if(names.length == 0) + return "not_enough_parameters"; + if(names.length == 1) + return names[0]; + + StringBuilder fullValue = new StringBuilder(); + for(int i = 0; i < names.length; i++){ + fullValue.append(names[i]); + if(i < names.length - 1) + fullValue.append(character); + } + return fullValue.toString(); + } +}