diff --git a/src/main/java/net/mcreator/superbwarfare/ModUtils.java b/src/main/java/net/mcreator/superbwarfare/ModUtils.java index 5f0c2b230..4faf39aeb 100644 --- a/src/main/java/net/mcreator/superbwarfare/ModUtils.java +++ b/src/main/java/net/mcreator/superbwarfare/ModUtils.java @@ -30,7 +30,7 @@ import java.util.function.BiConsumer; import java.util.function.Function; import java.util.function.Supplier; -@Mod("superbwarfare") +@Mod(ModUtils.MODID) public class ModUtils { public static final String MODID = "superbwarfare"; public static final String ATTRIBUTE_MODIFIER = "superbwarfare_attribute_modifier"; @@ -51,6 +51,7 @@ public class ModUtils { ModPotion.POTIONS.register(bus); ModMenuTypes.REGISTRY.register(bus); ModEnchantments.REGISTRY.register(bus); + ModVillagers.register(bus); bus.addListener(this::onCommonSetup); diff --git a/src/main/java/net/mcreator/superbwarfare/init/ModVillagers.java b/src/main/java/net/mcreator/superbwarfare/init/ModVillagers.java new file mode 100644 index 000000000..cefcb47f8 --- /dev/null +++ b/src/main/java/net/mcreator/superbwarfare/init/ModVillagers.java @@ -0,0 +1,51 @@ +package net.mcreator.superbwarfare.init; + +import com.google.common.collect.ImmutableSet; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; +import net.mcreator.superbwarfare.ModUtils; +import net.minecraft.world.entity.ai.village.poi.PoiType; +import net.minecraft.world.entity.npc.VillagerProfession; +import net.minecraft.world.entity.npc.VillagerTrades; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.trading.MerchantOffer; +import net.minecraftforge.event.village.VillagerTradesEvent; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; + +import java.util.List; + +@Mod.EventBusSubscriber(modid = ModUtils.MODID) +public class ModVillagers { + public static final DeferredRegister POI_TYPES = DeferredRegister.create(ForgeRegistries.POI_TYPES, ModUtils.MODID); + public static final DeferredRegister VILLAGER_PROFESSIONS = DeferredRegister.create(ForgeRegistries.VILLAGER_PROFESSIONS, ModUtils.MODID); + + public static final RegistryObject ARMS_DEALER_POI = POI_TYPES.register("arms_dealer", + () -> new PoiType(ImmutableSet.copyOf(ModBlocks.REFORGING_TABLE.get().getStateDefinition().getPossibleStates()), 1, 1)); + + public static final RegistryObject ARMS_DEALER = VILLAGER_PROFESSIONS.register("arms_dealer", + () -> new VillagerProfession("arms_dealer", holder -> holder.get() == ARMS_DEALER_POI.get(), holder -> holder.get() == ARMS_DEALER_POI.get(), + ImmutableSet.of(), ImmutableSet.of(), null)); + + public static void register(IEventBus eventBus) { + POI_TYPES.register(eventBus); + VILLAGER_PROFESSIONS.register(eventBus); + } + + @SubscribeEvent + public static void addCustomTrades(VillagerTradesEvent event) { + if (event.getType() == ModVillagers.ARMS_DEALER.get()) { + Int2ObjectMap> trades = event.getTrades(); + +// trades.get(1).add(((pTrader, pRandom) -> new MerchantOffer(new ItemStack(ItemRegistry.RED_AHOGE.get(), 5), +// new ItemStack(Items.EMERALD, 1), 10, 2, 0.05f))); +// trades.get(1).add(((pTrader, pRandom) -> new MerchantOffer(new ItemStack(ItemRegistry.WHITE_AHOGE.get(), 5), +// new ItemStack(Items.EMERALD, 1), 10, 2, 0.05f))); + } + } + +} diff --git a/src/main/resources/assets/superbwarfare/lang/en_us.json b/src/main/resources/assets/superbwarfare/lang/en_us.json index 57c545917..66bdd009c 100644 --- a/src/main/resources/assets/superbwarfare/lang/en_us.json +++ b/src/main/resources/assets/superbwarfare/lang/en_us.json @@ -327,5 +327,7 @@ "des.superbwarfare.shoot.rings": "Rings ", + "entity.minecraft.villager.superbwarfare.arms_dealer": "Arms Dealer", + "container.superbwarfare.reforging_table": "Gun Reforge Table" } \ No newline at end of file diff --git a/src/main/resources/assets/superbwarfare/lang/zh_cn.json b/src/main/resources/assets/superbwarfare/lang/zh_cn.json index edf5384ca..56c216997 100644 --- a/src/main/resources/assets/superbwarfare/lang/zh_cn.json +++ b/src/main/resources/assets/superbwarfare/lang/zh_cn.json @@ -327,6 +327,7 @@ "des.superbwarfare.shoot.rings": "环 ", + "entity.minecraft.villager.superbwarfare.arms_dealer": "军火商", "container.superbwarfare.reforging_table": "枪械重铸台" } \ No newline at end of file diff --git a/src/main/resources/assets/superbwarfare/textures/entity/villager/profession/armsdealer.png b/src/main/resources/assets/superbwarfare/textures/entity/villager/profession/armsdealer.png deleted file mode 100644 index f69c4227f..000000000 Binary files a/src/main/resources/assets/superbwarfare/textures/entity/villager/profession/armsdealer.png and /dev/null differ diff --git a/src/main/resources/assets/superbwarfare/textures/entity/zombie_villager/profession/armsdealer.png b/src/main/resources/assets/superbwarfare/textures/entity/zombie_villager/profession/armsdealer.png deleted file mode 100644 index 5342c27a2..000000000 Binary files a/src/main/resources/assets/superbwarfare/textures/entity/zombie_villager/profession/armsdealer.png and /dev/null differ diff --git a/src/main/resources/data/minecraft/tags/point_of_interest_type/acquirable_job_site.json b/src/main/resources/data/minecraft/tags/point_of_interest_type/acquirable_job_site.json new file mode 100644 index 000000000..6ac671f09 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/point_of_interest_type/acquirable_job_site.json @@ -0,0 +1,8 @@ +{ + "values": [ + { + "id": "superbwarfare:arms_dealer", + "required": false + } + ] +}