From ebaddaca592a0e8522fe340382bc0660eba9f853 Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Fri, 27 May 2022 15:20:06 +0100 Subject: [PATCH] Fix TR villagers. --- .../datagen/TechRebornDataGen.groovy | 2 + .../tags/TRPointOfInterestTagProvider.groovy | 45 +++++++++++++++++++ src/main/java/techreborn/init/TRVillager.java | 23 +++++++--- 3 files changed, 65 insertions(+), 5 deletions(-) create mode 100644 src/datagen/groovy/techreborn/datagen/tags/TRPointOfInterestTagProvider.groovy diff --git a/src/datagen/groovy/techreborn/datagen/TechRebornDataGen.groovy b/src/datagen/groovy/techreborn/datagen/TechRebornDataGen.groovy index 524a96359..873dd7a63 100644 --- a/src/datagen/groovy/techreborn/datagen/TechRebornDataGen.groovy +++ b/src/datagen/groovy/techreborn/datagen/TechRebornDataGen.groovy @@ -39,6 +39,7 @@ import techreborn.datagen.recipes.machine.industrial_sawmill.IndustrialSawmillRe import techreborn.datagen.recipes.smelting.SmeltingRecipesProvider import techreborn.datagen.tags.TRBlockTagProvider import techreborn.datagen.tags.TRItemTagProvider +import techreborn.datagen.tags.TRPointOfInterestTagProvider import techreborn.datagen.tags.WaterExplosionTagProvider class TechRebornDataGen implements DataGeneratorEntrypoint { @@ -47,6 +48,7 @@ class TechRebornDataGen implements DataGeneratorEntrypoint { void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) { fabricDataGenerator.addProvider(WaterExplosionTagProvider.&new) fabricDataGenerator.addProvider(TRItemTagProvider.&new) + fabricDataGenerator.addProvider(TRPointOfInterestTagProvider.&new) fabricDataGenerator.addProvider(TRBlockTagProvider.&new) // tags before all else, very important!! fabricDataGenerator.addProvider(SmeltingRecipesProvider.&new) diff --git a/src/datagen/groovy/techreborn/datagen/tags/TRPointOfInterestTagProvider.groovy b/src/datagen/groovy/techreborn/datagen/tags/TRPointOfInterestTagProvider.groovy new file mode 100644 index 000000000..0ddf21c2f --- /dev/null +++ b/src/datagen/groovy/techreborn/datagen/tags/TRPointOfInterestTagProvider.groovy @@ -0,0 +1,45 @@ +/* + * This file is part of TechReborn, licensed under the MIT License (MIT). + * + * Copyright (c) 2020 TechReborn + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package techreborn.datagen.tags + +import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator +import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider +import net.minecraft.tag.PointOfInterestTypeTags +import net.minecraft.util.registry.Registry +import net.minecraft.world.poi.PointOfInterestType +import techreborn.init.TRVillager + +class TRPointOfInterestTagProvider extends FabricTagProvider { + TRPointOfInterestTagProvider(FabricDataGenerator dataGenerator) { + super(dataGenerator, Registry.POINT_OF_INTEREST_TYPE) + } + + @Override + protected void generateTags() { + getOrCreateTagBuilder(PointOfInterestTypeTags.ACQUIRABLE_JOB_SITE) + .add(TRVillager.METALLURGIST_POI) + .add(TRVillager.ELECTRICIAN_POI) + } +} diff --git a/src/main/java/techreborn/init/TRVillager.java b/src/main/java/techreborn/init/TRVillager.java index 51356ead5..c2d26aea0 100644 --- a/src/main/java/techreborn/init/TRVillager.java +++ b/src/main/java/techreborn/init/TRVillager.java @@ -24,14 +24,27 @@ public class TRVillager { public static final Identifier ELECTRICIAN_ID = new Identifier(TechReborn.MOD_ID, "electrician"); public static final PointOfInterestType METALLURGIST_POI = PointOfInterestHelper.register( - METALLURGIST_ID, 1, 1, TRContent.Machine.IRON_ALLOY_FURNACE.block); + METALLURGIST_ID, 1, 1, TRContent.Machine.IRON_ALLOY_FURNACE.block + ); public static final PointOfInterestType ELECTRICIAN_POI = PointOfInterestHelper.register( - ELECTRICIAN_ID, 1, 1, TRContent.Machine.SOLID_FUEL_GENERATOR.block); + ELECTRICIAN_ID, 1, 1, TRContent.Machine.SOLID_FUEL_GENERATOR.block + ); public static final VillagerProfession METALLURGIST_PROFESSION = Registry.register(Registry.VILLAGER_PROFESSION, METALLURGIST_ID, - VillagerProfessionBuilder.create().id(METALLURGIST_ID).workstation(RegistryKey.of(Registry.POINT_OF_INTEREST_TYPE_KEY, METALLURGIST_ID)).workSound(SoundEvents.ENTITY_VILLAGER_WORK_TOOLSMITH).build()); - public static final VillagerProfession ELECTRICIAN_PROFESSION = Registry.register(Registry.VILLAGER_PROFESSION,ELECTRICIAN_ID, - VillagerProfessionBuilder.create().id(ELECTRICIAN_ID).workstation(RegistryKey.of(Registry.POINT_OF_INTEREST_TYPE_KEY, ELECTRICIAN_ID)).workSound(ModSounds.CABLE_SHOCK).build()); + VillagerProfessionBuilder.create() + .id(METALLURGIST_ID) + .workstation(RegistryKey.of(Registry.POINT_OF_INTEREST_TYPE_KEY, METALLURGIST_ID)) + .workSound(SoundEvents.ENTITY_VILLAGER_WORK_TOOLSMITH) + .build() + ); + + public static final VillagerProfession ELECTRICIAN_PROFESSION = Registry.register(Registry.VILLAGER_PROFESSION, ELECTRICIAN_ID, + VillagerProfessionBuilder.create() + .id(ELECTRICIAN_ID) + .workstation(RegistryKey.of(Registry.POINT_OF_INTEREST_TYPE_KEY, ELECTRICIAN_ID)) + .workSound(ModSounds.CABLE_SHOCK) + .build() + ); private TRVillager() {/* No instantiation. */}