From 2f0ec6bc734ec32781f73bc5508f4c363f9a071f Mon Sep 17 00:00:00 2001 From: wolfkidsounds <32850639+wolfkidsounds@users.noreply.github.com> Date: Sun, 29 Jan 2023 06:22:27 +0100 Subject: [PATCH] 1.18.2 - 3.2.1 - moved RenderSetup - reworked Common Events - reworked Common Setup - changed standard Configuration - changed default values of MinecraftConfig - reworked ModBlocks - easier ModItems - cleaned up WildCropBlock - reworked WildCropConfig - reworked WildCropFeature - reworked WildCropGeneration - reworked Main Class - bumped version --- build.gradle | 15 +++--- gradle.properties | 4 +- gradle/wrapper/gradle-wrapper.properties | 2 +- .../wolfkidsounds/wildplants/ClientSetup.java | 18 +++++++ .../wolfkidsounds/wildplants/CommonSetup.java | 5 +- .../wolfkidsounds/wildplants/Wildplants.java | 32 ++++++++--- .../wildplants/block/ModBlocks.java | 48 +++++++++++++++++ .../wildplants/block/WildCropBlock.java | 21 +------- .../wildplants/config/Configuration.java | 16 ++++-- .../{features => }/MinecraftConfig.java | 18 +++---- .../wildplants/event/CommonEvents.java | 53 +++++++++---------- .../wildplants/item/ModItems.java | 16 ++++++ .../wildplants/registry/ModBlocks.java | 27 ---------- .../wildplants/registry/ModItemGroups.java | 14 ----- .../wildplants/registry/ModItems.java | 26 --------- .../wildplants/world/RenderSetup.java | 18 ------- .../wildplants/world/WildCropGeneration.java | 41 ++++++++------ .../world/settings/BiomeTagFilter.java | 1 + .../world/settings/WildCropConfig.java | 16 ++++-- .../world/settings/WildCropFeature.java | 10 +++- src/main/resources/META-INF/mods.toml | 8 +-- .../enhancedfarming_wild_aubergine.json | 7 +++ .../enhancedfarming_wild_corn.json | 7 +++ .../enhancedfarming_wild_cucumber.json | 7 +++ .../enhancedfarming_wild_garlic.json | 7 +++ .../enhancedfarming_wild_grape.json | 7 +++ .../enhancedfarming_wild_lettuce.json | 7 +++ .../enhancedfarming_wild_mint.json | 7 +++ .../enhancedfarming_wild_onion.json | 7 +++ .../enhancedfarming_wild_pineapple.json | 7 +++ .../enhancedfarming_wild_tomato.json | 7 +++ .../assets/wildplants/lang/en_us.json | 2 +- src/main/resources/pack.mcmeta | 11 ++-- 33 files changed, 298 insertions(+), 194 deletions(-) create mode 100644 src/main/java/wks/wolfkidsounds/wildplants/ClientSetup.java create mode 100644 src/main/java/wks/wolfkidsounds/wildplants/block/ModBlocks.java rename src/main/java/wks/wolfkidsounds/wildplants/config/{features => }/MinecraftConfig.java (77%) create mode 100644 src/main/java/wks/wolfkidsounds/wildplants/item/ModItems.java delete mode 100644 src/main/java/wks/wolfkidsounds/wildplants/registry/ModBlocks.java delete mode 100644 src/main/java/wks/wolfkidsounds/wildplants/registry/ModItemGroups.java delete mode 100644 src/main/java/wks/wolfkidsounds/wildplants/registry/ModItems.java delete mode 100644 src/main/java/wks/wolfkidsounds/wildplants/world/RenderSetup.java create mode 100644 src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_aubergine.json create mode 100644 src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_corn.json create mode 100644 src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_cucumber.json create mode 100644 src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_garlic.json create mode 100644 src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_grape.json create mode 100644 src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_lettuce.json create mode 100644 src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_mint.json create mode 100644 src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_onion.json create mode 100644 src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_pineapple.json create mode 100644 src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_tomato.json diff --git a/build.gradle b/build.gradle index 09bccbf..ea4cde3 100644 --- a/build.gradle +++ b/build.gradle @@ -18,8 +18,9 @@ plugins { apply plugin: 'net.minecraftforge.gradle' apply plugin: 'org.parchmentmc.librarian.forgegradle' -version = '1.18.2_3.1.1_forge' -group = 'wks.wolfkidsounds' + +version = '1.18.2_3.2.1_forge' +group = 'wks.wolfkidsounds' // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = 'wildplants' // Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17. @@ -41,7 +42,7 @@ minecraft { // Use non-default mappings at your own risk. They may not always work. // Simply re-run your setup task after changing the mappings to update your workspace. // mappings channel: 'official', version: '1.18.2' - mappings channel: 'parchment', version: '2022.08.07-1.18.2' + mappings channel: 'parchment', version: '2022.11.06-1.18.2' // accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') // Currently, this location cannot be changed from the default. @@ -154,7 +155,7 @@ dependencies { // Specify the version of Minecraft to use. If this is any group other than 'net.minecraft', it is assumed // that the dep is a ForgeGradle 'patcher' dependency, and its patches will be applied. // The userdev artifact is a special name and will get all sorts of transformations applied to it. - minecraft 'net.minecraftforge:forge:1.18.2-40.1.80' + minecraft 'net.minecraftforge:forge:1.18.2-40.2.0' // Real mod deobf dependency examples - these get remapped to your current mappings // compileOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}:api") // Adds JEI API as a compile dependency @@ -174,17 +175,17 @@ jar { manifest { attributes([ "Specification-Title" : "wildplants", - "Specification-Vendor" : "wildplantssareus", + "Specification-Vendor" : "wolfkidsounds", "Specification-Version" : "1", // We are version 1 of ourselves "Implementation-Title" : project.name, "Implementation-Version" : project.jar.archiveVersion, - "Implementation-Vendor" : "wildplantssareus", + "Implementation-Vendor" : "wolfkidsounds", "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") ]) } } -// Example settings to allow publishing using the maven-publish plugin +// Example configuration to allow publishing using the maven-publish plugin // This is the preferred method to reobfuscate your jar file jar.finalizedBy('reobfJar') // However if you are in a multi-project build, dev time needs unobfed jar files, so you can delay the obfuscation until publishing by doing diff --git a/gradle.properties b/gradle.properties index 29b2ac4..878bf1f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,4 @@ +# Sets default memory used for gradle commands. Can be overridden by user or command line properties. +# This is required to provide enough memory for the Minecraft decompilation process. org.gradle.jvmargs=-Xmx3G -org.gradle.daemon=false +org.gradle.daemon=false \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e750102..ae04661 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/wks/wolfkidsounds/wildplants/ClientSetup.java b/src/main/java/wks/wolfkidsounds/wildplants/ClientSetup.java new file mode 100644 index 0000000..89ddfae --- /dev/null +++ b/src/main/java/wks/wolfkidsounds/wildplants/ClientSetup.java @@ -0,0 +1,18 @@ +package wks.wolfkidsounds.wildplants; + +import net.minecraft.client.renderer.ItemBlockRenderTypes; +import net.minecraft.client.renderer.RenderType; +import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; +import wks.wolfkidsounds.wildplants.block.ModBlocks; +import wks.wolfkidsounds.wildplants.config.Configuration; + +public class ClientSetup { + public static void init(final FMLClientSetupEvent event) { + if (Configuration.ENABLE_MINECRAFT.get()) { + ItemBlockRenderTypes.setRenderLayer(ModBlocks.MINECRAFT_WILD_WHEAT.get(), RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(ModBlocks.MINECRAFT_WILD_CARROTS.get(), RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(ModBlocks.MINECRAFT_WILD_POTATOES.get(), RenderType.cutout()); + ItemBlockRenderTypes.setRenderLayer(ModBlocks.MINECRAFT_WILD_BEETROOTS.get(), RenderType.cutout()); + } + } +} diff --git a/src/main/java/wks/wolfkidsounds/wildplants/CommonSetup.java b/src/main/java/wks/wolfkidsounds/wildplants/CommonSetup.java index 661ae4f..71aef5b 100644 --- a/src/main/java/wks/wolfkidsounds/wildplants/CommonSetup.java +++ b/src/main/java/wks/wolfkidsounds/wildplants/CommonSetup.java @@ -7,7 +7,10 @@ public class CommonSetup { public static void init(final FMLCommonSetupEvent event) { event.enqueueWork(() -> { - if (Configuration.ENABLE_MINECRAFT.get()) {WildCropGeneration.registerWildMinecraftCropGeneration();} + if (Configuration.ENABLE_MINECRAFT.get()) { + WildCropGeneration.registerWildMinecraftCropGeneration(); + Wildplants.LOGGER.debug("setup-minecraft"); + } }); } } diff --git a/src/main/java/wks/wolfkidsounds/wildplants/Wildplants.java b/src/main/java/wks/wolfkidsounds/wildplants/Wildplants.java index db2a0ff..57b0b68 100644 --- a/src/main/java/wks/wolfkidsounds/wildplants/Wildplants.java +++ b/src/main/java/wks/wolfkidsounds/wildplants/Wildplants.java @@ -1,5 +1,8 @@ package wks.wolfkidsounds.wildplants; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.Blocks; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.fml.ModLoadingContext; @@ -7,32 +10,47 @@ import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import wks.wolfkidsounds.wildplants.block.ModBlocks; import wks.wolfkidsounds.wildplants.config.Configuration; -import wks.wolfkidsounds.wildplants.config.features.MinecraftConfig; +import wks.wolfkidsounds.wildplants.config.MinecraftConfig; +import wks.wolfkidsounds.wildplants.item.ModItems; import wks.wolfkidsounds.wildplants.registry.ModBiomeFeatures; -import wks.wolfkidsounds.wildplants.registry.ModBlocks; -import wks.wolfkidsounds.wildplants.registry.ModItems; import wks.wolfkidsounds.wildplants.registry.ModPlacementModifiers; -import wks.wolfkidsounds.wildplants.world.RenderSetup; + +import javax.annotation.Nonnull; @Mod(Wildplants.MOD_ID) public class Wildplants { public static final String MOD_ID = "wildplants"; + public static final Logger LOGGER = LogManager.getLogger(); + public static final CreativeModeTab CREATIVE_MODE_TAB = new CreativeModeTab("wildplants_creative_tab") { + @Nonnull + @Override + public ItemStack makeIcon() { + return new ItemStack(Blocks.GRASS); + } + }; public Wildplants() { final IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); modEventBus.addListener(CommonSetup::init); - modEventBus.addListener(RenderSetup::init); + modEventBus.addListener(ClientSetup::init); + LOGGER.debug("register-eventbus"); + //Configurations ModLoadingContext.get().registerConfig(net.minecraftforge.fml.config.ModConfig.Type.COMMON, Configuration.SPEC, "wildplants/wildplants-common.toml"); - ModLoadingContext.get().registerConfig(net.minecraftforge.fml.config.ModConfig.Type.CLIENT, MinecraftConfig.SPEC, "wildplants/mods/minecraft.toml"); + ModLoadingContext.get().registerConfig(net.minecraftforge.fml.config.ModConfig.Type.COMMON, MinecraftConfig.SPEC, "wildplants/mods/minecraft.toml"); + LOGGER.debug("register-config"); - ModItems.ITEMS.register(modEventBus); + //Registry ModBlocks.BLOCKS.register(modEventBus); + ModItems.ITEMS.register(modEventBus); ModBiomeFeatures.FEATURES.register(modEventBus); ModPlacementModifiers.PLACEMENT_MODIFIERS.register(modEventBus); + LOGGER.debug("register-ModObjects"); MinecraftForge.EVENT_BUS.register(this); + LOGGER.debug("register-eventbus"); } } diff --git a/src/main/java/wks/wolfkidsounds/wildplants/block/ModBlocks.java b/src/main/java/wks/wolfkidsounds/wildplants/block/ModBlocks.java new file mode 100644 index 0000000..10a61c9 --- /dev/null +++ b/src/main/java/wks/wolfkidsounds/wildplants/block/ModBlocks.java @@ -0,0 +1,48 @@ +package wks.wolfkidsounds.wildplants.block; + +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; +import wks.wolfkidsounds.wildplants.Wildplants; +import wks.wolfkidsounds.wildplants.config.Configuration; +import wks.wolfkidsounds.wildplants.item.ModItems; + +import java.util.function.Supplier; + +public class ModBlocks { + public static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, Wildplants.MOD_ID); + + //MINECRAFT + public static final RegistryObject MINECRAFT_WILD_WHEAT = registerMinecraftBlock("minecraft_wild_wheat", () -> new WildCropBlock(MobEffects.GLOWING, 1, Block.Properties.copy(Blocks.TALL_GRASS))); + public static final RegistryObject MINECRAFT_WILD_CARROTS = registerMinecraftBlock("minecraft_wild_carrots", () -> new WildCropBlock(MobEffects.GLOWING, 1, Block.Properties.copy(Blocks.TALL_GRASS))); + public static final RegistryObject MINECRAFT_WILD_POTATOES = registerMinecraftBlock("minecraft_wild_potatoes", () -> new WildCropBlock(MobEffects.GLOWING, 1, Block.Properties.copy(Blocks.TALL_GRASS))); + public static final RegistryObject MINECRAFT_WILD_BEETROOTS = registerMinecraftBlock("minecraft_wild_beetroots", () -> new WildCropBlock(MobEffects.GLOWING, 1, Block.Properties.copy(Blocks.TALL_GRASS))); + + //---------------------------------------------------------------------------------------------- + private static RegistryObject registerMinecraftBlock(String name, Supplier block) { + RegistryObject toReturn = BLOCKS.register(name, block); + if (Configuration.ENABLE_MINECRAFT.get()) { + registerBlockItem(name, toReturn); + Wildplants.LOGGER.debug("register-blocks-minecraft"); + } + return toReturn; + } + + //---------------------------------------------------------------------------------------------- + + private static void registerBlockItem(String name, RegistryObject block) { + ModItems.ITEMS.register(name, () -> new BlockItem(block.get(), new Item.Properties().tab(Wildplants.CREATIVE_MODE_TAB))); + Wildplants.LOGGER.debug("register-block-ttems"); + } + + public static void register(IEventBus eventBus) { + BLOCKS.register(eventBus); + Wildplants.LOGGER.debug("register-modblocks-moditems"); + } +} diff --git a/src/main/java/wks/wolfkidsounds/wildplants/block/WildCropBlock.java b/src/main/java/wks/wolfkidsounds/wildplants/block/WildCropBlock.java index df3f103..1f2f354 100644 --- a/src/main/java/wks/wolfkidsounds/wildplants/block/WildCropBlock.java +++ b/src/main/java/wks/wolfkidsounds/wildplants/block/WildCropBlock.java @@ -1,29 +1,12 @@ package wks.wolfkidsounds.wildplants.block; -import net.minecraft.core.BlockPos; -import net.minecraft.tags.BlockTags; import net.minecraft.world.effect.MobEffect; -import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.FlowerBlock; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.shapes.CollisionContext; -import net.minecraft.world.phys.shapes.VoxelShape; +import wks.wolfkidsounds.wildplants.Wildplants; public class WildCropBlock extends FlowerBlock { - protected static final VoxelShape SHAPE = Block.box(2.0D, 0.0D, 2.0D, 14.0D, 13.0D, 14.0D); - public WildCropBlock(MobEffect suspiciousStewEffect, int effectDuration, Properties properties) { super(suspiciousStewEffect, effectDuration, properties); - } - - @Override - public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { - return SHAPE; - } - - @Override - protected boolean mayPlaceOn(BlockState state, BlockGetter level, BlockPos pos) { - return state.is(BlockTags.DIRT) || state.is(BlockTags.SAND); + Wildplants.LOGGER.debug("configure-cropblock"); } } diff --git a/src/main/java/wks/wolfkidsounds/wildplants/config/Configuration.java b/src/main/java/wks/wolfkidsounds/wildplants/config/Configuration.java index 3e84c39..110e8de 100644 --- a/src/main/java/wks/wolfkidsounds/wildplants/config/Configuration.java +++ b/src/main/java/wks/wolfkidsounds/wildplants/config/Configuration.java @@ -1,6 +1,7 @@ package wks.wolfkidsounds.wildplants.config; import net.minecraftforge.common.ForgeConfigSpec; +import net.minecraftforge.fml.ModList; import net.minecraftforge.fml.common.Mod; @Mod.EventBusSubscriber @@ -8,6 +9,11 @@ public class Configuration { public static final ForgeConfigSpec.Builder BUILDER = new ForgeConfigSpec.Builder(); public static final ForgeConfigSpec SPEC; + public static Boolean LOADED_IMMERSIVEENGINEERING = ModList.get().isLoaded("immersiveengineering"); + public static Boolean LOADED_VEGGIEWAY = ModList.get().isLoaded("veggie_way"); + public static Boolean LOADED_HARVESTCRAFT = ModList.get().isLoaded("pamhc2crops"); + public static Boolean LOADED_ENHANCEDFARMING = ModList.get().isLoaded("enhancedfarming"); + public static ForgeConfigSpec.ConfigValue GLOBAL_FREQUENCY; public static ForgeConfigSpec.ConfigValue GLOBAL_SPREAD_SIZE; @@ -15,17 +21,19 @@ public class Configuration { public static ForgeConfigSpec.BooleanValue ENABLE_IMMERSIVEENGINEERING; public static ForgeConfigSpec.BooleanValue ENABLE_VEGGIEWAY; public static ForgeConfigSpec.BooleanValue ENABLE_HARVESTCRAFT; + public static ForgeConfigSpec.BooleanValue ENABLE_ENHANCEDFARMING; + static { BUILDER.push("General"); BUILDER.push("Global_Modifier"); GLOBAL_FREQUENCY = BUILDER - .comment("How often to try to place a patch. (higher is more) [Default: 50]") - .define("Frequency", 50); + .comment("How often to try to place a patch. (smaller is more) [Default: 64]") + .define("Frequency", 64); GLOBAL_SPREAD_SIZE = BUILDER .comment("How far apart crops are planted in a patch. (higher is more) [Default: 6]") - .define("Size", 6); + .define("Size", 4); BUILDER.pop(); BUILDER.push("Compat"); ENABLE_MINECRAFT = BUILDER @@ -36,6 +44,8 @@ public class Configuration { .define("Veggie_Way", true); ENABLE_HARVESTCRAFT = BUILDER .define("Harvestcraft", true); + ENABLE_ENHANCEDFARMING = BUILDER + .define("EnhancedFarming", true); BUILDER.pop(); BUILDER.pop(); diff --git a/src/main/java/wks/wolfkidsounds/wildplants/config/features/MinecraftConfig.java b/src/main/java/wks/wolfkidsounds/wildplants/config/MinecraftConfig.java similarity index 77% rename from src/main/java/wks/wolfkidsounds/wildplants/config/features/MinecraftConfig.java rename to src/main/java/wks/wolfkidsounds/wildplants/config/MinecraftConfig.java index 0054610..e54c93c 100644 --- a/src/main/java/wks/wolfkidsounds/wildplants/config/features/MinecraftConfig.java +++ b/src/main/java/wks/wolfkidsounds/wildplants/config/MinecraftConfig.java @@ -1,4 +1,4 @@ -package wks.wolfkidsounds.wildplants.config.features; +package wks.wolfkidsounds.wildplants.config; import net.minecraftforge.common.ForgeConfigSpec; @@ -25,32 +25,32 @@ public class MinecraftConfig { GENERATE_MINECRAFT_WILD_WHEAT = BUILDER .define("Enabled:", true); CHANCE_MINECRAFT_WILD_WHEAT = BUILDER - .comment("Default [30]") - .defineInRange("Chance:", 30, 0, Integer.MAX_VALUE); + .comment("SMALLER=MORE - Default [64]") + .defineInRange("Chance:", 64, 0, Integer.MAX_VALUE); BUILDER.pop(); BUILDER.push("MINECRAFT_WILD CARROTS"); GENERATE_MINECRAFT_WILD_CARROTS = BUILDER .define("Enabled:", true); CHANCE_MINECRAFT_WILD_CARROTS = BUILDER - .comment("Default [30]") - .defineInRange("Chance:", 30, 0, Integer.MAX_VALUE); + .comment("SMALLER=MORE - Default [64]") + .defineInRange("Chance:", 64, 0, Integer.MAX_VALUE); BUILDER.pop(); BUILDER.push("MINECRAFT_WILD POTATOES"); GENERATE_MINECRAFT_WILD_POTATOES = BUILDER .define("Enabled:", true); CHANCE_MINECRAFT_WILD_POTATOES = BUILDER - .comment("Default [30]") - .defineInRange("Chance:", 30, 5, Integer.MAX_VALUE); + .comment("SMALLER=MORE - Default [64]") + .defineInRange("Chance:", 64, 5, Integer.MAX_VALUE); BUILDER.pop(); BUILDER.push("MINECRAFT_WILD BEETROOTS"); GENERATE_MINECRAFT_WILD_BEETROOTS = BUILDER .define("Enabled:", true); CHANCE_MINECRAFT_WILD_BEETROOTS = BUILDER - .comment("Default [30]") - .defineInRange("Chance:", 30, 5, Integer.MAX_VALUE); + .comment("SMALLER=MORE - Default [64]") + .defineInRange("Chance:", 64, 5, Integer.MAX_VALUE); BUILDER.pop(); SPEC = BUILDER.build(); diff --git a/src/main/java/wks/wolfkidsounds/wildplants/event/CommonEvents.java b/src/main/java/wks/wolfkidsounds/wildplants/event/CommonEvents.java index 05b5aaf..36a4633 100644 --- a/src/main/java/wks/wolfkidsounds/wildplants/event/CommonEvents.java +++ b/src/main/java/wks/wolfkidsounds/wildplants/event/CommonEvents.java @@ -1,6 +1,5 @@ package wks.wolfkidsounds.wildplants.event; -import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.levelgen.GenerationStep; import net.minecraftforge.common.world.BiomeGenerationSettingsBuilder; @@ -8,47 +7,43 @@ import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import wks.wolfkidsounds.wildplants.Wildplants; -import wks.wolfkidsounds.wildplants.config.features.MinecraftConfig; +import wks.wolfkidsounds.wildplants.config.Configuration; +import wks.wolfkidsounds.wildplants.config.MinecraftConfig; import wks.wolfkidsounds.wildplants.world.WildCropGeneration; @Mod.EventBusSubscriber(modid = Wildplants.MOD_ID) public class CommonEvents { + @SubscribeEvent public static void onBiomeLoad(BiomeLoadingEvent event) { BiomeGenerationSettingsBuilder builder = event.getGeneration(); Biome.ClimateSettings climate = event.getClimate(); - ResourceLocation biomeName = event.getName(); - - //Biome Name - if (biomeName != null && biomeName.getPath().equals("beach")) { - if (MinecraftConfig.GENERATE_MINECRAFT_WILD_BEETROOTS.get()) { - builder.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, WildCropGeneration.PATCH_WILD_MINECRAFT_BEETROOTS); - } - } - - //Biome Category - if (event.getCategory().equals(Biome.BiomeCategory.SWAMP) || event.getCategory().equals(Biome.BiomeCategory.JUNGLE)) { - //TEST - } - - //Temperature - if (climate.temperature >= 1.0F) { - if (MinecraftConfig.GENERATE_MINECRAFT_WILD_WHEAT.get()) { - builder.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, WildCropGeneration.PATCH_WILD_MINECRAFT_WHEAT); + //CLIMATE + if (Configuration.ENABLE_MINECRAFT.get()) { + //TEMPERATE + if (climate.temperature >= 0.5F && climate.temperature <= 1.0F) { + //MINECRAFT + if (MinecraftConfig.GENERATE_MINECRAFT_WILD_WHEAT.get()) { + builder.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, WildCropGeneration.PATCH_WILD_MINECRAFT_WHEAT); + } + if (MinecraftConfig.GENERATE_MINECRAFT_WILD_CARROTS.get()) { + builder.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, WildCropGeneration.PATCH_WILD_MINECRAFT_CARROTS); + } + if (MinecraftConfig.GENERATE_MINECRAFT_WILD_POTATOES.get()) { + builder.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, WildCropGeneration.PATCH_WILD_MINECRAFT_POTATOES); + } } - } - if (climate.temperature > 0.3F && climate.temperature < 1.0F) { - if (MinecraftConfig.GENERATE_MINECRAFT_WILD_CARROTS.get()) { - builder.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, WildCropGeneration.PATCH_WILD_MINECRAFT_CARROTS); - } - } + //SANDY + if (event.getCategory().equals(Biome.BiomeCategory.DESERT) || event.getCategory().equals(Biome.BiomeCategory.BEACH)) { + //MINECRAFT - if (climate.temperature > 0.0F && climate.temperature <= 0.3F) { - if (MinecraftConfig.GENERATE_MINECRAFT_WILD_POTATOES.get()) { - builder.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, WildCropGeneration.PATCH_WILD_MINECRAFT_POTATOES); + if (MinecraftConfig.GENERATE_MINECRAFT_WILD_BEETROOTS.get()) { + builder.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, WildCropGeneration.PATCH_WILD_MINECRAFT_BEETROOTS); + } } } + Wildplants.LOGGER.debug("register-minecraft-biome-config"); } } diff --git a/src/main/java/wks/wolfkidsounds/wildplants/item/ModItems.java b/src/main/java/wks/wolfkidsounds/wildplants/item/ModItems.java new file mode 100644 index 0000000..9290058 --- /dev/null +++ b/src/main/java/wks/wolfkidsounds/wildplants/item/ModItems.java @@ -0,0 +1,16 @@ +package wks.wolfkidsounds.wildplants.item; + +import net.minecraft.world.item.Item; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; +import wks.wolfkidsounds.wildplants.Wildplants; + +public class ModItems { + public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, Wildplants.MOD_ID); + + public static void register(IEventBus eventBus) { + ITEMS.register(eventBus); + Wildplants.LOGGER.debug("register-moditems"); + } +} diff --git a/src/main/java/wks/wolfkidsounds/wildplants/registry/ModBlocks.java b/src/main/java/wks/wolfkidsounds/wildplants/registry/ModBlocks.java deleted file mode 100644 index 4d79660..0000000 --- a/src/main/java/wks/wolfkidsounds/wildplants/registry/ModBlocks.java +++ /dev/null @@ -1,27 +0,0 @@ -package wks.wolfkidsounds.wildplants.registry; - -import net.minecraft.world.effect.MobEffects; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.RegistryObject; -import wks.wolfkidsounds.wildplants.Wildplants; -import wks.wolfkidsounds.wildplants.block.WildCropBlock; - -public class ModBlocks { - public static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, Wildplants.MOD_ID); - - // Minecraft - public static final RegistryObject MINECRAFT_WILD_WHEAT = BLOCKS.register("minecraft_wild_wheat", - () -> new WildCropBlock(MobEffects.GLOWING, 1, Block.Properties.copy(Blocks.TALL_GRASS))); - - public static final RegistryObject MINECRAFT_WILD_CARROTS = BLOCKS.register("minecraft_wild_carrots", - () -> new WildCropBlock(MobEffects.GLOWING, 1, Block.Properties.copy(Blocks.TALL_GRASS))); - - public static final RegistryObject MINECRAFT_WILD_POTATOES = BLOCKS.register("minecraft_wild_potatoes", - () -> new WildCropBlock(MobEffects.GLOWING, 1, Block.Properties.copy(Blocks.TALL_GRASS))); - - public static final RegistryObject MINECRAFT_WILD_BEETROOTS = BLOCKS.register("minecraft_wild_beetroots", - () -> new WildCropBlock(MobEffects.GLOWING, 1, Block.Properties.copy(Blocks.TALL_GRASS))); -} diff --git a/src/main/java/wks/wolfkidsounds/wildplants/registry/ModItemGroups.java b/src/main/java/wks/wolfkidsounds/wildplants/registry/ModItemGroups.java deleted file mode 100644 index 09c45cd..0000000 --- a/src/main/java/wks/wolfkidsounds/wildplants/registry/ModItemGroups.java +++ /dev/null @@ -1,14 +0,0 @@ -package wks.wolfkidsounds.wildplants.registry; - -import net.minecraft.world.item.CreativeModeTab; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; - -public class ModItemGroups { - public static final CreativeModeTab MINECRAFT_TAB = new CreativeModeTab("wildplants_minecraft_tab") { - @Override - public ItemStack makeIcon() { - return new ItemStack(Items.GRASS.asItem()); - } - }; -} diff --git a/src/main/java/wks/wolfkidsounds/wildplants/registry/ModItems.java b/src/main/java/wks/wolfkidsounds/wildplants/registry/ModItems.java deleted file mode 100644 index 7f663b1..0000000 --- a/src/main/java/wks/wolfkidsounds/wildplants/registry/ModItems.java +++ /dev/null @@ -1,26 +0,0 @@ -package wks.wolfkidsounds.wildplants.registry; - -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.Item; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.RegistryObject; -import wks.wolfkidsounds.wildplants.Wildplants; - -public class ModItems { - public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, Wildplants.MOD_ID); - // Wild Crops - public static final RegistryObject MINECRAFT_WILD_WHEAT_ = ITEMS.register("minecraft_wild_wheat", - () -> new BlockItem(ModBlocks.MINECRAFT_WILD_WHEAT.get(), minecraftCrop())); - public static final RegistryObject MINECRAFT_WILD_CARROTS = ITEMS.register("minecraft_wild_carrots", - () -> new BlockItem(ModBlocks.MINECRAFT_WILD_CARROTS.get(), minecraftCrop())); - public static final RegistryObject MINECRAFT_WILD_POTATOES = ITEMS.register("minecraft_wild_potatoes", - () -> new BlockItem(ModBlocks.MINECRAFT_WILD_POTATOES.get(), minecraftCrop())); - public static final RegistryObject MINECRAFT_WILD_BEETROOTS = ITEMS.register("minecraft_wild_beetroots", - () -> new BlockItem(ModBlocks.MINECRAFT_WILD_BEETROOTS.get(), minecraftCrop())); - - // Helper methods - public static Item.Properties minecraftCrop() { - return new Item.Properties().tab(ModItemGroups.MINECRAFT_TAB); - } -} diff --git a/src/main/java/wks/wolfkidsounds/wildplants/world/RenderSetup.java b/src/main/java/wks/wolfkidsounds/wildplants/world/RenderSetup.java deleted file mode 100644 index 9e8a372..0000000 --- a/src/main/java/wks/wolfkidsounds/wildplants/world/RenderSetup.java +++ /dev/null @@ -1,18 +0,0 @@ -package wks.wolfkidsounds.wildplants.world; - -import net.minecraft.client.renderer.ItemBlockRenderTypes; -import net.minecraft.client.renderer.RenderType; -import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; -import wks.wolfkidsounds.wildplants.registry.ModBlocks; - -public class RenderSetup -{ - public static void init(final FMLClientSetupEvent event) { - - //Minecraft - ItemBlockRenderTypes.setRenderLayer(ModBlocks.MINECRAFT_WILD_WHEAT.get(), RenderType.cutout()); - ItemBlockRenderTypes.setRenderLayer(ModBlocks.MINECRAFT_WILD_CARROTS.get(), RenderType.cutout()); - ItemBlockRenderTypes.setRenderLayer(ModBlocks.MINECRAFT_WILD_POTATOES.get(), RenderType.cutout()); - ItemBlockRenderTypes.setRenderLayer(ModBlocks.MINECRAFT_WILD_BEETROOTS.get(), RenderType.cutout()); - } -} diff --git a/src/main/java/wks/wolfkidsounds/wildplants/world/WildCropGeneration.java b/src/main/java/wks/wolfkidsounds/wildplants/world/WildCropGeneration.java index 8c3de74..e874258 100644 --- a/src/main/java/wks/wolfkidsounds/wildplants/world/WildCropGeneration.java +++ b/src/main/java/wks/wolfkidsounds/wildplants/world/WildCropGeneration.java @@ -17,11 +17,11 @@ import net.minecraft.world.level.levelgen.feature.stateproviders.BlockStateProvider; import net.minecraft.world.level.levelgen.placement.*; import net.minecraftforge.common.Tags; -import wks.wolfkidsounds.wildplants.config.Configuration; import wks.wolfkidsounds.wildplants.Wildplants; -import wks.wolfkidsounds.wildplants.config.features.MinecraftConfig; +import wks.wolfkidsounds.wildplants.config.Configuration; +import wks.wolfkidsounds.wildplants.config.MinecraftConfig; import wks.wolfkidsounds.wildplants.registry.ModBiomeFeatures; -import wks.wolfkidsounds.wildplants.registry.ModBlocks; +import wks.wolfkidsounds.wildplants.block.ModBlocks; import wks.wolfkidsounds.wildplants.world.settings.BiomeTagFilter; import wks.wolfkidsounds.wildplants.world.settings.WildCropConfig; @@ -30,6 +30,12 @@ public class WildCropGeneration { public static final BlockPos BLOCK_BELOW = new BlockPos(0, -1, 0); public static final BiomeTagFilter TAGGED_IS_OVERWORLD = BiomeTagFilter.biomeIsInTag(Tags.Biomes.IS_OVERWORLD); + + //GLOBAL MODIFIER + public static int TRIES = Configuration.GLOBAL_FREQUENCY.get(); + public static int SPREAD = Configuration.GLOBAL_SPREAD_SIZE.get(); + + //MINECRAFT public static Holder> FEATURE_PATCH_WILD_MINECRAFT_WHEAT; public static Holder> FEATURE_PATCH_WILD_MINECRAFT_CARROTS; public static Holder> FEATURE_PATCH_WILD_MINECRAFT_POTATOES; @@ -39,39 +45,43 @@ public class WildCropGeneration { public static Holder PATCH_WILD_MINECRAFT_POTATOES; public static Holder PATCH_WILD_MINECRAFT_BEETROOTS; - public static int TRIES = Configuration.GLOBAL_FREQUENCY.get(); - public static int SPREAD = Configuration.GLOBAL_SPREAD_SIZE.get(); public static void registerWildMinecraftCropGeneration() { + + //CONFIGURE FEATURES FEATURE_PATCH_WILD_MINECRAFT_WHEAT = register(new ResourceLocation(Wildplants.MOD_ID, "patch_minecraft_wild_wheat"), - ModBiomeFeatures.WILD_CROP.get(), wildCropConfig(ModBlocks.MINECRAFT_WILD_WHEAT.get(), BlockPredicate.matchesTag(BlockTags.DIRT, BLOCK_BELOW))); + ModBiomeFeatures.WILD_CROP.get(), wildCropConfig(ModBlocks.MINECRAFT_WILD_WHEAT.get(), Blocks.GRASS, BlockPredicate.matchesTag(BlockTags.DIRT, BLOCK_BELOW))); FEATURE_PATCH_WILD_MINECRAFT_CARROTS = register(new ResourceLocation(Wildplants.MOD_ID, "patch_minecraft_wild_carrots"), - ModBiomeFeatures.WILD_CROP.get(), wildCropConfig(ModBlocks.MINECRAFT_WILD_CARROTS.get(), BlockPredicate.matchesTag(BlockTags.DIRT, BLOCK_BELOW))); + ModBiomeFeatures.WILD_CROP.get(), wildCropConfig(ModBlocks.MINECRAFT_WILD_CARROTS.get(), Blocks.GRASS, BlockPredicate.matchesTag(BlockTags.DIRT, BLOCK_BELOW))); FEATURE_PATCH_WILD_MINECRAFT_POTATOES = register(new ResourceLocation(Wildplants.MOD_ID, "patch_minecraft_wild_potatoes"), - ModBiomeFeatures.WILD_CROP.get(), wildCropConfig(ModBlocks.MINECRAFT_WILD_POTATOES.get(), BlockPredicate.matchesTag(BlockTags.DIRT, BLOCK_BELOW))); + ModBiomeFeatures.WILD_CROP.get(), wildCropConfig(ModBlocks.MINECRAFT_WILD_POTATOES.get(), Blocks.GRASS, BlockPredicate.matchesTag(BlockTags.DIRT, BLOCK_BELOW))); FEATURE_PATCH_WILD_MINECRAFT_BEETROOTS = register(new ResourceLocation(Wildplants.MOD_ID, "patch_minecraft_wild_beetroots"), - ModBiomeFeatures.WILD_CROP.get(), wildCropConfig(ModBlocks.MINECRAFT_WILD_BEETROOTS.get(), BlockPredicate.matchesBlocks(List.of(Blocks.GRASS_BLOCK, Blocks.DIRT, Blocks.COARSE_DIRT, Blocks.RED_SAND, Blocks.SAND), BLOCK_BELOW))); + ModBiomeFeatures.WILD_CROP.get(), wildCropConfig(ModBlocks.MINECRAFT_WILD_BEETROOTS.get(), Blocks.DEAD_BUSH, BlockPredicate.matchesTag(BlockTags.SAND, BLOCK_BELOW))); + //CONFIGURE PATCH PATCH_WILD_MINECRAFT_WHEAT = registerPlacement(new ResourceLocation(Wildplants.MOD_ID, "patch_minecraft_wild_wheat"), FEATURE_PATCH_WILD_MINECRAFT_WHEAT, RarityFilter.onAverageOnceEvery(MinecraftConfig.CHANCE_MINECRAFT_WILD_WHEAT.get()), InSquarePlacement.spread(), PlacementUtils.HEIGHTMAP, BiomeFilter.biome(), TAGGED_IS_OVERWORLD); - PATCH_WILD_MINECRAFT_CARROTS = registerPlacement(new ResourceLocation("patch_wild_onions"), + PATCH_WILD_MINECRAFT_CARROTS = registerPlacement(new ResourceLocation(Wildplants.MOD_ID,"patch_minecraft_wild_carrots"), FEATURE_PATCH_WILD_MINECRAFT_CARROTS, RarityFilter.onAverageOnceEvery(MinecraftConfig.CHANCE_MINECRAFT_WILD_CARROTS.get()), InSquarePlacement.spread(), PlacementUtils.HEIGHTMAP, BiomeFilter.biome(), TAGGED_IS_OVERWORLD); - PATCH_WILD_MINECRAFT_POTATOES = registerPlacement(new ResourceLocation("patch_wild_tomatoes"), + PATCH_WILD_MINECRAFT_POTATOES = registerPlacement(new ResourceLocation(Wildplants.MOD_ID,"patch_minecraft_wild_potatoes"), FEATURE_PATCH_WILD_MINECRAFT_POTATOES, RarityFilter.onAverageOnceEvery(MinecraftConfig.CHANCE_MINECRAFT_WILD_POTATOES.get()), InSquarePlacement.spread(), PlacementUtils.HEIGHTMAP, BiomeFilter.biome(), TAGGED_IS_OVERWORLD); - PATCH_WILD_MINECRAFT_BEETROOTS = registerPlacement(new ResourceLocation("patch_wild_carrots"), + PATCH_WILD_MINECRAFT_BEETROOTS = registerPlacement(new ResourceLocation(Wildplants.MOD_ID,"patch_minecraft_wild_beetroots"), FEATURE_PATCH_WILD_MINECRAFT_BEETROOTS, RarityFilter.onAverageOnceEvery(MinecraftConfig.CHANCE_MINECRAFT_WILD_BEETROOTS.get()), InSquarePlacement.spread(), PlacementUtils.HEIGHTMAP, BiomeFilter.biome(), TAGGED_IS_OVERWORLD); + Wildplants.LOGGER.debug("register-minecraft-gen"); } - public static WildCropConfig wildCropConfig(Block primaryBlock, BlockPredicate plantedOn) { - return new WildCropConfig(TRIES, SPREAD+1, SPREAD-1, plantBlockConfig(primaryBlock, plantedOn), null); + //-------------------------------------------------------------------------- + + public static WildCropConfig wildCropConfig(Block primaryBlock, Block secondaryBlock, BlockPredicate plantedOn) { + return new WildCropConfig(TRIES, SPREAD + 1, SPREAD - 1, plantBlockConfig(primaryBlock, plantedOn), plantBlockConfig(secondaryBlock, plantedOn), null); } public static Holder plantBlockConfig(Block block, BlockPredicate plantedOn) { @@ -80,8 +90,7 @@ Feature.SIMPLE_BLOCK, new SimpleBlockConfiguration(BlockStateProvider.simple(blo BlockPredicate.allOf(BlockPredicate.ONLY_IN_AIR_PREDICATE, plantedOn)); } - // Registry stuff - + //REGISTER static Holder registerPlacement(ResourceLocation id, Holder> feature, PlacementModifier... modifiers) { return BuiltinRegistries.register(BuiltinRegistries.PLACED_FEATURE, id, new PlacedFeature(Holder.hackyErase(feature), List.of(modifiers))); } diff --git a/src/main/java/wks/wolfkidsounds/wildplants/world/settings/BiomeTagFilter.java b/src/main/java/wks/wolfkidsounds/wildplants/world/settings/BiomeTagFilter.java index 7ce33a4..42b7546 100644 --- a/src/main/java/wks/wolfkidsounds/wildplants/world/settings/BiomeTagFilter.java +++ b/src/main/java/wks/wolfkidsounds/wildplants/world/settings/BiomeTagFilter.java @@ -30,6 +30,7 @@ public static BiomeTagFilter biomeIsInTag(TagKey biomeTag) { } @Override + protected boolean shouldPlace(PlacementContext context, Random random, BlockPos pos) { Holder biome = context.getLevel().getBiome(pos); return biome.is(biomeTag); diff --git a/src/main/java/wks/wolfkidsounds/wildplants/world/settings/WildCropConfig.java b/src/main/java/wks/wolfkidsounds/wildplants/world/settings/WildCropConfig.java index 9eda113..20f8d0b 100644 --- a/src/main/java/wks/wolfkidsounds/wildplants/world/settings/WildCropConfig.java +++ b/src/main/java/wks/wolfkidsounds/wildplants/world/settings/WildCropConfig.java @@ -10,22 +10,24 @@ import javax.annotation.Nullable; import java.util.Optional; -public record WildCropConfig(int tries, int xzSpread, int ySpread, Holder primaryFeature, - @Nullable Holder floorFeature -) implements FeatureConfiguration { +public record WildCropConfig(int tries, int xzSpread, int ySpread, Holder primaryFeature, Holder secondaryFeature, @Nullable Holder floorFeature +) implements FeatureConfiguration +{ public static final Codec CODEC = RecordCodecBuilder.create((config) -> config.group( ExtraCodecs.POSITIVE_INT.fieldOf("tries").orElse(64).forGetter(WildCropConfig::tries), ExtraCodecs.NON_NEGATIVE_INT.fieldOf("xz_spread").orElse(4).forGetter(WildCropConfig::xzSpread), ExtraCodecs.NON_NEGATIVE_INT.fieldOf("y_spread").orElse(3).forGetter(WildCropConfig::ySpread), PlacedFeature.CODEC.fieldOf("primary_feature").forGetter(WildCropConfig::primaryFeature), + PlacedFeature.CODEC.fieldOf("secondary_feature").forGetter(WildCropConfig::secondaryFeature), PlacedFeature.CODEC.optionalFieldOf("floor_feature").forGetter(floorConfig -> Optional.ofNullable(floorConfig.floorFeature)) - ).apply(config, (tries, xzSpread, yspread, primary, floor) -> floor.map(placedFeatureHolder -> new WildCropConfig(tries, xzSpread, yspread, primary, placedFeatureHolder)).orElseGet(() -> new WildCropConfig(tries, xzSpread, yspread, primary, null)))); + ).apply(config, (tries, xzSpread, yspread, primary, secondary, floor) -> floor.map(placedFeatureHolder -> new WildCropConfig(tries, xzSpread, yspread, primary, secondary, placedFeatureHolder)).orElseGet(() -> new WildCropConfig(tries, xzSpread, yspread, primary, secondary, null)))); - public WildCropConfig(int tries, int xzSpread, int ySpread, Holder primaryFeature, @Nullable Holder floorFeature) { + public WildCropConfig(int tries, int xzSpread, int ySpread, Holder primaryFeature, Holder secondaryFeature, @Nullable Holder floorFeature) { this.tries = tries; this.xzSpread = xzSpread; this.ySpread = ySpread; this.primaryFeature = primaryFeature; + this.secondaryFeature = secondaryFeature; this.floorFeature = floorFeature; } @@ -45,6 +47,10 @@ public Holder primaryFeature() { return this.primaryFeature; } + public Holder secondaryFeature() { + return this.secondaryFeature; + } + public Holder floorFeature() { return this.floorFeature; } diff --git a/src/main/java/wks/wolfkidsounds/wildplants/world/settings/WildCropFeature.java b/src/main/java/wks/wolfkidsounds/wildplants/world/settings/WildCropFeature.java index 6de7f9e..aa9e5bc 100644 --- a/src/main/java/wks/wolfkidsounds/wildplants/world/settings/WildCropFeature.java +++ b/src/main/java/wks/wolfkidsounds/wildplants/world/settings/WildCropFeature.java @@ -10,7 +10,8 @@ import java.util.Random; -public class WildCropFeature extends Feature { +public class WildCropFeature extends Feature +{ public WildCropFeature(Codec codec) { super(codec); } @@ -47,6 +48,13 @@ public boolean place(FeaturePlaceContext context) { } } + for (int l = 0; l < tries; ++l) { + mutablePos.setWithOffset(origin, random.nextInt(xzSpread) - random.nextInt(xzSpread), random.nextInt(ySpread) - random.nextInt(ySpread), random.nextInt(xzSpread) - random.nextInt(xzSpread)); + if (config.secondaryFeature().value().place(level, context.chunkGenerator(), random, mutablePos)) { + ++i; + } + } + return i > 0; } } diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 493f98a..738dc5a 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -1,14 +1,14 @@ modLoader="javafml" -loaderVersion="[39,)" +loaderVersion="[40,)" license="GNU General Public License version 3 (GPLv3)" [[mods]] modId="wildplants" -version="1.18.2_3.1.1_forge" +version="1.18.2_3.2.1_forge" displayName="Wildplants" -credits="WOLFKIDSOUNDS" +credits="wolfkidsounds" displayURL="https://wolfkidsounds.com" -authors="WOLFKIDsounds" +authors="wolfkidsounds" description=''' This mod adds wild plants (crops) similar to the farmers delight or croptopia world generation. ''' diff --git a/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_aubergine.json b/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_aubergine.json new file mode 100644 index 0000000..c843fa2 --- /dev/null +++ b/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_aubergine.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "enhancedfarming:block/aubergine_crop_5" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_corn.json b/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_corn.json new file mode 100644 index 0000000..14cae54 --- /dev/null +++ b/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_corn.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "enhancedfarming:block/corn_crop_7" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_cucumber.json b/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_cucumber.json new file mode 100644 index 0000000..4218e6c --- /dev/null +++ b/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_cucumber.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "enhancedfarming:block/cucumber_crop_5" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_garlic.json b/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_garlic.json new file mode 100644 index 0000000..a48da58 --- /dev/null +++ b/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_garlic.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "enhancedfarming:block/garlic_crop_5" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_grape.json b/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_grape.json new file mode 100644 index 0000000..359ea8c --- /dev/null +++ b/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_grape.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "enhancedfarming:block/grape_crop_5" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_lettuce.json b/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_lettuce.json new file mode 100644 index 0000000..30b7964 --- /dev/null +++ b/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_lettuce.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "enhancedfarming:block/lettuce_crop_5" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_mint.json b/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_mint.json new file mode 100644 index 0000000..831780d --- /dev/null +++ b/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_mint.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "enhancedfarming:block/mint_crop_5" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_onion.json b/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_onion.json new file mode 100644 index 0000000..d8eaf6e --- /dev/null +++ b/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_onion.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "enhancedfarming:block/onion_crop_5" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_pineapple.json b/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_pineapple.json new file mode 100644 index 0000000..71e0c6d --- /dev/null +++ b/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_pineapple.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "enhancedfarming:block/pineapple_crop_5" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_tomato.json b/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_tomato.json new file mode 100644 index 0000000..748469b --- /dev/null +++ b/src/main/resources/assets/wildplants/blockstates/enhancedfarming_wild_tomato.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "enhancedfarming:block/tomato_crop_6" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/wildplants/lang/en_us.json b/src/main/resources/assets/wildplants/lang/en_us.json index 32dfb57..f86b689 100644 --- a/src/main/resources/assets/wildplants/lang/en_us.json +++ b/src/main/resources/assets/wildplants/lang/en_us.json @@ -1,5 +1,5 @@ { - "itemGroup.wildplants_minecraft_tab": "Wildplants: Minecraft", + "itemGroup.wildplants_creative_tab": "Wildplants", "block.wildplants.minecraft_wild_wheat": "Wild Wheat", "block.wildplants.minecraft_wild_carrots": "Wild Carrot", diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta index 47ecdea..1c030c8 100644 --- a/src/main/resources/pack.mcmeta +++ b/src/main/resources/pack.mcmeta @@ -1,7 +1,8 @@ { - "pack": { - "description": "wildplants resources", - "pack_format": 8, - "_comment": "" - } + "pack": { + "description": "wildplants resources", + "pack_format": 9, + "forge:resource_pack_format": 8, + "forge:data_pack_format": 9 + } }