From 3085bd5d920416724c0b891d5089f34e1f748cf7 Mon Sep 17 00:00:00 2001 From: dragonruler1000 Date: Thu, 26 Jun 2025 20:19:03 -0500 Subject: [PATCH] Update mod version to 1.2.3, rename DustHouseStructure to HouseStructure, and implement structure generation for plains biomes. Updated textures for the subtle knife and omelet items and the house structure should now generate. Signed-off-by: dragonruler1000 --- gradle.properties | 2 +- .../hdm_mod/item/custom/StructureLocator.java | 51 ++++++++++++++++++ .../hdm_mod/world/ModWorldEvents.java | 2 + .../world/gen/ModStructureGeneration.java | 27 ++++++++++ .../world/structure/ModStructures.java | 4 +- ...ouseStructure.java => HouseStructure.java} | 8 +-- .../assets/hdm_mod/textures/item/knife.png | Bin 108 -> 308 bytes .../assets/hdm_mod/textures/item/omelet.png | Bin 136 -> 230 bytes .../template_pool/house/start_pool.json | 4 +- 9 files changed, 89 insertions(+), 9 deletions(-) create mode 100644 src/main/java/us/minecraftchest2/hdm_mod/item/custom/StructureLocator.java create mode 100644 src/main/java/us/minecraftchest2/hdm_mod/world/gen/ModStructureGeneration.java rename src/main/java/us/minecraftchest2/hdm_mod/world/structure/structures/{DustHouseStructure.java => HouseStructure.java} (96%) diff --git a/gradle.properties b/gradle.properties index dd48fb0..0213130 100644 --- a/gradle.properties +++ b/gradle.properties @@ -38,7 +38,7 @@ mod_name=Hdm Mod # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. mod_license=MIT # The mod version. See https://semver.org/ -mod_version=1.2.2 +mod_version=1.2.3 # The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. # This should match the base package used for the mod sources. # See https://maven.apache.org/guides/mini/guide-naming-conventions.html diff --git a/src/main/java/us/minecraftchest2/hdm_mod/item/custom/StructureLocator.java b/src/main/java/us/minecraftchest2/hdm_mod/item/custom/StructureLocator.java new file mode 100644 index 0000000..bab98f8 --- /dev/null +++ b/src/main/java/us/minecraftchest2/hdm_mod/item/custom/StructureLocator.java @@ -0,0 +1,51 @@ +//package us.minecraftchest2.hdm_mod.item.custom; +// +//import net.minecraft.entity.player.PlayerEntity; +//import net.minecraft.item.Item; +//import net.minecraft.item.ItemStack; +//import net.minecraft.util.*; +//import net.minecraft.util.text.StringTextComponent; +//import net.minecraft.world.World; +//import net.minecraft.world.gen.feature.structure.Structure; +////import net.minecraft.world.gen.feature.structure.StructureFeature; +//import net.minecraft.util.math.BlockPos; +//import net.minecraft.world.server.ServerWorld; +// +//public class StructureLocatorItem extends Item { +// +// public StructureLocatorItem(Properties properties) { +// super(properties); +// } +// +// @Override +// public ActionResult use(World world, PlayerEntity player, Hand hand) { +// if (!world.isClientSide && world instanceof ServerWorld) { +// ServerWorld serverWorld = (ServerWorld) world; +// BlockPos playerPos = player.blockPosition(); +// +// // Replace this with your own structure, or any StructureFeature +// Structure structureToFind = Structure.STRONGHOLD; +// +// BlockPos structurePos = serverWorld.getStructureLocation( +// structureToFind, +// playerPos, +// 100, // search radius in chunks +// false +// ); +// +// if (structurePos != null) { +// player.sendMessage( +// new StringTextComponent("Nearest structure at: " + structurePos.getX() + ", " + structurePos.getY() + ", " + structurePos.getZ()), +// player.getUUID() +// ); +// } else { +// player.sendMessage( +// new StringTextComponent("No structure found nearby."), +// player.getUUID() +// ); +// } +// } +// +// return ActionResult.resultSuccess(player.getItemInHand(hand)); +// } +//} diff --git a/src/main/java/us/minecraftchest2/hdm_mod/world/ModWorldEvents.java b/src/main/java/us/minecraftchest2/hdm_mod/world/ModWorldEvents.java index 5497ffe..2c7dd3f 100644 --- a/src/main/java/us/minecraftchest2/hdm_mod/world/ModWorldEvents.java +++ b/src/main/java/us/minecraftchest2/hdm_mod/world/ModWorldEvents.java @@ -25,6 +25,8 @@ public class ModWorldEvents { ObfuscationReflectionHelper.findMethod(ChunkGenerator.class, "func_230347_a_"); ResourceLocation cgRL = Registry.CHUNK_GENERATOR_CODEC.getKey( (Codec)GETCODEC_METHOD.invoke(serverWorld.getChunkProvider().generator)); + } catch (Exception e) { + e.printStackTrace(); } } } diff --git a/src/main/java/us/minecraftchest2/hdm_mod/world/gen/ModStructureGeneration.java b/src/main/java/us/minecraftchest2/hdm_mod/world/gen/ModStructureGeneration.java new file mode 100644 index 0000000..e083aa1 --- /dev/null +++ b/src/main/java/us/minecraftchest2/hdm_mod/world/gen/ModStructureGeneration.java @@ -0,0 +1,27 @@ +package us.minecraftchest2.hdm_mod.world.gen; + +import net.minecraft.util.RegistryKey; +import net.minecraft.util.registry.Registry; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.gen.feature.IFeatureConfig; +import net.minecraft.world.gen.feature.StructureFeature; +import net.minecraftforge.common.BiomeDictionary; +import net.minecraftforge.event.world.BiomeLoadingEvent; +import us.minecraftchest2.hdm_mod.world.structure.ModStructures; + +import java.util.List; +import java.util.Set; +import java.util.function.Supplier; + +public class ModStructureGeneration { + public static void generateStructures(final BiomeLoadingEvent event) { + RegistryKey key = RegistryKey.getOrCreateKey(Registry.BIOME_KEY, event.getName()); + Set types = BiomeDictionary.getTypes(key); + + if(types.contains(BiomeDictionary.Type.PLAINS)) { + List>> structures = event.getGeneration().getStructures(); + + structures.add(() -> ModStructures.HOUSE.get().withConfiguration(IFeatureConfig.NO_FEATURE_CONFIG)); + } + } +} \ No newline at end of file diff --git a/src/main/java/us/minecraftchest2/hdm_mod/world/structure/ModStructures.java b/src/main/java/us/minecraftchest2/hdm_mod/world/structure/ModStructures.java index 415c9bd..a7927f5 100644 --- a/src/main/java/us/minecraftchest2/hdm_mod/world/structure/ModStructures.java +++ b/src/main/java/us/minecraftchest2/hdm_mod/world/structure/ModStructures.java @@ -12,7 +12,7 @@ import net.minecraftforge.fml.RegistryObject; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import us.minecraftchest2.hdm_mod.Hdm_mod; -import us.minecraftchest2.hdm_mod.world.structure.structures.DustHouseStructure; +import us.minecraftchest2.hdm_mod.world.structure.structures.HouseStructure; import java.util.HashMap; import java.util.Map; @@ -22,7 +22,7 @@ public class ModStructures { DeferredRegister.create(ForgeRegistries.STRUCTURE_FEATURES, Hdm_mod.MOD_ID); public static final RegistryObject> HOUSE = - STRUCTURES.register("house", DustHouseStructure::new); + STRUCTURES.register("house", HouseStructure::new); /* average distance apart in chunks between spawn attempts */ /* minimum distance apart in chunks between spawn attempts. MUST BE LESS THAN ABOVE VALUE*/ diff --git a/src/main/java/us/minecraftchest2/hdm_mod/world/structure/structures/DustHouseStructure.java b/src/main/java/us/minecraftchest2/hdm_mod/world/structure/structures/HouseStructure.java similarity index 96% rename from src/main/java/us/minecraftchest2/hdm_mod/world/structure/structures/DustHouseStructure.java rename to src/main/java/us/minecraftchest2/hdm_mod/world/structure/structures/HouseStructure.java index 64a5cb0..9a65477 100644 --- a/src/main/java/us/minecraftchest2/hdm_mod/world/structure/structures/DustHouseStructure.java +++ b/src/main/java/us/minecraftchest2/hdm_mod/world/structure/structures/HouseStructure.java @@ -21,12 +21,12 @@ import net.minecraft.world.gen.feature.structure.Structure; import net.minecraft.world.gen.feature.structure.StructureStart; import net.minecraft.world.gen.feature.structure.VillageConfig; import net.minecraft.world.gen.feature.template.TemplateManager; +import us.minecraftchest2.hdm_mod.Hdm_mod; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; -import us.minecraftchest2.hdm_mod.Hdm_mod; -public class DustHouseStructure extends Structure { - public DustHouseStructure() { +public class HouseStructure extends Structure { + public HouseStructure() { super(NoFeatureConfig.CODEC); } @@ -51,7 +51,7 @@ public class DustHouseStructure extends Structure { @Override public IStartFactory getStartFactory() { - return DustHouseStructure.Start::new; + return HouseStructure.Start::new; } public static class Start extends StructureStart { diff --git a/src/main/resources/assets/hdm_mod/textures/item/knife.png b/src/main/resources/assets/hdm_mod/textures/item/knife.png index 859a66dd3a8d102cda4661fac0818bd00290be23..01538f80d4c36d7fb88e16901e2ab23e6f801a1b 100644 GIT binary patch delta 267 zcmV+m0rdWCv;vSZf9^>{K~y-6V_+BsjKnD7vp4$>V}Ck$iYPrOnwR|j@L&7*n*YcK z5v|$y_38iG$JhKfetr5shpGa81NiLC;IYAwxujj8};82lg zxM~&3@ZS;vpnf!a%n%Pk&wW^aEpzZ Ur8{ETJ_aE0boFyt=akR{0Kx$k8~^|S diff --git a/src/main/resources/assets/hdm_mod/textures/item/omelet.png b/src/main/resources/assets/hdm_mod/textures/item/omelet.png index edf0513db1c0fb036a94f0e6f95ebd023de1534e..ca90c3f7b483059212c1eae3a79e281b4d3afac5 100644 GIT binary patch delta 189 zcmV;u07CzW0pW92)ARV{`fHqH19VIoE| zE8i)c@^AytB?HQTA{&g;5)>C8Yu?bwj$+8XPg2;FLc#!>(*nwWGHjiG5yJ)ZK1ng8 z%WQy$1&Rw`eq~@_VA#;f&hYz_8HQ$bz=Ui&vSM^F?~@cm5;os6OfTSzHe_32n$e>Y rs{yQhr?9$)U^;*SVl^``FfafBC=pE;=qi`%00000NkvXXu0mjfI516} delta 94 zcmaFH*ugl#Fx<)0#WBR9H#tFq^|0ihe<|PQOO*QTFtK0x+hK~L1RF@i{{0t!wwY>- xZF?@;cb0LsDSqd^@^A7|$(sV3O#2NO7%Ih;-d@@_eKP|Pc)I$ztaD0e0sw*#C&>T+ diff --git a/src/main/resources/data/hdm_mod/worldgen/template_pool/house/start_pool.json b/src/main/resources/data/hdm_mod/worldgen/template_pool/house/start_pool.json index 1fd8cd4..b805d55 100644 --- a/src/main/resources/data/hdm_mod/worldgen/template_pool/house/start_pool.json +++ b/src/main/resources/data/hdm_mod/worldgen/template_pool/house/start_pool.json @@ -1,11 +1,11 @@ { - "name": "tutorialmod:house/start_pool", + "name": "hdm_mod:house/start_pool", "fallback": "minecraft:empty", "elements": [ { "weight": 1, "element": { - "location": "tutorialmod:house", + "location": "hdm_mod:house", "processors": "minecraft:empty", "projection": "rigid", "element_type": "minecraft:single_pool_element"