Compare commits

..

No commits in common. "bcd5a4081351e2f43ee52119e7ed0c2c1c8ad335" and "89cff4ca48314a7b48d0a40801a19c034e5d082c" have entirely different histories.

14 changed files with 4 additions and 285 deletions

View file

@ -1,5 +1,5 @@
org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=flase
org.gradle.daemon=false
# The Minecraft version must agree with the Forge version to get a valid artifact
minecraft_version=1.16.5
# The Minecraft version range can use any release version of Minecraft as bounds.

View file

@ -2,8 +2,6 @@ package us.minecraftchest2.hdm_mod;
import net.minecraft.block.Block;
import net.minecraft.block.Blocks;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.RenderTypeLookup;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.eventbus.api.IEventBus;
@ -22,7 +20,6 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import us.minecraftchest2.hdm_mod.block.ModBlocks;
import us.minecraftchest2.hdm_mod.item.ModItems;
import us.minecraftchest2.hdm_mod.world.structure.ModStructures;
//import us.minecraftchest2.hdm_mod.init.ItemInit;
import java.util.stream.Collectors;
@ -42,8 +39,6 @@ public class Hdm_mod {
ModItems.register(modEventBus1);
ModBlocks.register(modEventBus1);
ModStructures.register(modEventBus1);
modEventBus1.addListener(this::setup);
// Register the enqueueIMC method for modloading
modEventBus1.addListener(this::enqueueIMC);
@ -71,8 +66,6 @@ public class Hdm_mod {
private void doClientStuff(final FMLClientSetupEvent event) {
// do something that can only be done on the client
event.enqueueWork(() -> {
});
}
private void enqueueIMC(final InterModEnqueueEvent event) {

View file

@ -3,7 +3,6 @@ package us.minecraftchest2.hdm_mod.block;
import net.minecraft.block.AbstractBlock;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.block.material.Material;
import net.minecraft.item.BlockItem;
import net.minecraft.item.Item;

View file

@ -1,17 +1,11 @@
package us.minecraftchest2.hdm_mod.item;
import net.minecraft.item.BlockItem;
import net.minecraft.item.Food;
import net.minecraft.item.Item;
import net.minecraft.potion.Effect;
import net.minecraft.potion.EffectInstance;
import net.minecraft.potion.Effects;
import net.minecraftforge.eventbus.api.IEventBus;
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.block.ModBlocks;
import us.minecraftchest2.hdm_mod.item.custom.SubtleKnife;
public class ModItems {
@ -24,13 +18,12 @@ public class ModItems {
public static final RegistryObject<Item> OMELET = ITEMS.register("omelet",
() -> new Item(new Item.Properties().food(new Food.Builder().hunger(5).fastToEat().saturation(20)
.effect(() -> new EffectInstance(Effects.HUNGER, 40, 4), 0.75f).build()).group(ModItemGroup.HDM_ITEM_GROUP)));
() -> new Item(new Item.Properties().group(ModItemGroup.HDM_ITEM_GROUP)));
public static final RegistryObject<Item> KNIFE = ITEMS.register("subtle_knife",
() -> new SubtleKnife(new Item.Properties().maxStackSize(1).group(ModItemGroup.HDM_ITEM_GROUP).maxDamage(2000)));
public static final RegistryObject<Item> OMELET_COOKED = ITEMS.register("omelet-cooked",
() -> new Item(new Item.Properties().food(new Food.Builder().hunger(5).fastToEat().saturation(20).build()).group(ModItemGroup.HDM_ITEM_GROUP)));
public static void register(IEventBus eventBus) {
ITEMS.register(eventBus);

View file

@ -132,9 +132,6 @@ public class SimpleTeleporter implements ITeleporter {
case "the_end":
dimensionName = "the End";
break;
case "hdm_dimension":
dimensionName = "HDM Dimension";
break;
default:
dimensionName = path.replace('_', ' ');
dimensionName = dimensionName.substring(0, 1).toUpperCase() + dimensionName.substring(1);

View file

@ -1,113 +0,0 @@
package us.minecraftchest2.hdm_mod.world.structure;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import net.minecraft.util.registry.WorldGenRegistries;
import net.minecraft.world.gen.feature.NoFeatureConfig;
import net.minecraft.world.gen.feature.structure.Structure;
import net.minecraft.world.gen.settings.DimensionStructuresSettings;
import net.minecraft.world.gen.settings.StructureSeparationSettings;
import net.minecraftforge.eventbus.api.IEventBus;
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 java.util.HashMap;
import java.util.Map;
public class ModStructures {
public static final DeferredRegister<Structure<?>> STRUCTURES =
DeferredRegister.create(ForgeRegistries.STRUCTURE_FEATURES, Hdm_mod.MOD_ID);
public static final RegistryObject<Structure<NoFeatureConfig>> HOUSE =
STRUCTURES.register("house", DustHouseStructure::new);
/* average distance apart in chunks between spawn attempts */
/* minimum distance apart in chunks between spawn attempts. MUST BE LESS THAN ABOVE VALUE*/
/* this modifies the seed of the structure so no two structures always spawn over each-other.
Make this large and unique. */
public static void setupStructures() {
setupMapSpacingAndLand(HOUSE.get(),
new StructureSeparationSettings(100,50, 1234567890),
true);
}
/**
* Adds the provided structure to the registry, and adds the separation settings.
* The rarity of the structure is determined based on the values passed into
* this method in the structureSeparationSettings argument.
* This method is called by setupStructures above.
**/
public static <F extends Structure<?>> void setupMapSpacingAndLand(F structure, StructureSeparationSettings structureSeparationSettings,
boolean transformSurroundingLand) {
//add our structures into the map in Structure class
Structure.NAME_STRUCTURE_BIMAP.put(structure.getRegistryName().toString(), structure);
/*
* Whether surrounding land will be modified automatically to conform to the bottom of the structure.
* Basically, it adds land at the base of the structure like it does for Villages and Outposts.
* Doesn't work well on structure that have pieces stacked vertically or change in heights.
*
*/
if (transformSurroundingLand) {
Structure.field_236384_t_ = ImmutableList.<Structure<?>>builder()
.addAll(Structure.field_236384_t_)
.add(structure)
.build();
}
/*
* This is the map that holds the default spacing of all structures.
* Always add your structure to here so that other mods can utilize it if needed.
*
* However, while it does propagate the spacing to some correct dimensions from this map,
* it seems it doesn't always work for code made dimensions as they read from this list beforehand.
*
* Instead, we will use the WorldEvent.Load event in ModWorldEvents to add the structure
* spacing from this list into that dimension or to do dimension blacklisting properly.
* We also use our entry in DimensionStructuresSettings.DEFAULTS in WorldEvent.Load as well.
*
* DEFAULTS requires AccessTransformer (See resources/META-INF/accesstransformer.cfg)
*/
DimensionStructuresSettings.field_236191_b_ =
ImmutableMap.<Structure<?>, StructureSeparationSettings>builder()
.putAll(DimensionStructuresSettings.field_236191_b_)
.put(structure, structureSeparationSettings)
.build();
/*
* There are very few mods that relies on seeing your structure in the
* noise settings registry before the world is made.
*
* You may see some mods add their spacings to DimensionSettings.BUILTIN_OVERWORLD instead of the
* NOISE_GENERATOR_SETTINGS loop below but that field only applies for the default overworld and
* won't add to other worldtypes or dimensions (like amplified or Nether).
* So yeah, don't do DimensionSettings.BUILTIN_OVERWORLD. Use the NOISE_GENERATOR_SETTINGS loop
* below instead if you must.
*/
WorldGenRegistries.NOISE_SETTINGS.getEntries().forEach(settings -> {
Map<Structure<?>, StructureSeparationSettings> structureMap =
settings.getValue().getStructures().func_236195_a_();
/*
* Pre-caution in case a mod makes the structure map immutable like datapacks do.
* I take no chances myself. You never know what another mods does...
*
* structureConfig requires AccessTransformer (See resources/META-INF/accesstransformer.cfg)
*/
if (structureMap instanceof ImmutableMap) {
Map<Structure<?>, StructureSeparationSettings> tempMap = new HashMap<>(structureMap);
tempMap.put(structure, structureSeparationSettings);
settings.getValue().getStructures().func_236195_a_();
} else {
structureMap.put(structure, structureSeparationSettings);
}
});
}
public static void register(IEventBus eventBus) {
STRUCTURES.register(eventBus);
}
}

View file

@ -1,90 +0,0 @@
package us.minecraftchest2.hdm_mod.world.structure.structures;
import net.minecraft.block.BlockState;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.SharedSeedRandom;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.ChunkPos;
import net.minecraft.util.math.MutableBoundingBox;
import net.minecraft.util.registry.DynamicRegistries;
import net.minecraft.util.registry.Registry;
import net.minecraft.world.IBlockReader;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.provider.BiomeProvider;
import net.minecraft.world.gen.ChunkGenerator;
import net.minecraft.world.gen.GenerationStage;
import net.minecraft.world.gen.Heightmap;
import net.minecraft.world.gen.feature.NoFeatureConfig;
import net.minecraft.world.gen.feature.jigsaw.JigsawManager;
import net.minecraft.world.gen.feature.structure.AbstractVillagePiece;
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 org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import us.minecraftchest2.hdm_mod.Hdm_mod;
public class DustHouseStructure extends Structure<NoFeatureConfig> {
public DustHouseStructure() {
super(NoFeatureConfig.CODEC);
}
@Override
public GenerationStage.Decoration getDecorationStage() {
return GenerationStage.Decoration.SURFACE_STRUCTURES;
}
@Override
protected boolean func_230363_a_(ChunkGenerator chunkGenerator, BiomeProvider biomeSource,
long seed, SharedSeedRandom chunkRandom, int chunkX, int chunkZ,
Biome biome, ChunkPos chunkPos, NoFeatureConfig featureConfig) {
BlockPos centerOfChunk = new BlockPos((chunkX << 4) + 7, 0, (chunkZ << 4) + 7);
int landHeight = chunkGenerator.getHeight(centerOfChunk.getX(), centerOfChunk.getZ(),
Heightmap.Type.WORLD_SURFACE_WG);
IBlockReader columnOfBlocks = chunkGenerator.func_230348_a_(centerOfChunk.getX(), centerOfChunk.getZ());
BlockState topBlock = columnOfBlocks.getBlockState(centerOfChunk.up(landHeight));
return topBlock.getFluidState().isEmpty();
}
@Override
public IStartFactory<NoFeatureConfig> getStartFactory() {
return DustHouseStructure.Start::new;
}
public static class Start extends StructureStart<NoFeatureConfig> {
public Start(Structure<NoFeatureConfig> structureIn, int chunkX, int chunkZ,
MutableBoundingBox mutableBoundingBox, int referenceIn, long seedIn) {
super(structureIn, chunkX, chunkZ, mutableBoundingBox, referenceIn, seedIn);
}
@Override // generatePieces
public void func_230364_a_(DynamicRegistries dynamicRegistryManager, ChunkGenerator chunkGenerator,
TemplateManager templateManagerIn, int chunkX, int chunkZ, Biome biomeIn,
NoFeatureConfig config) {
// Turns the chunk coordinates into actual coordinates we can use. (Gets center of that chunk)
int x = (chunkX << 4) + 7;
int z = (chunkZ << 4) + 7;
BlockPos blockpos = new BlockPos(x, 0, z);
//addpieces()
JigsawManager.func_242837_a(dynamicRegistryManager,
new VillageConfig(() -> dynamicRegistryManager.getRegistry(Registry.JIGSAW_POOL_KEY)
.getOrDefault(new ResourceLocation(Hdm_mod.MOD_ID, "house/start_pool")),
10), AbstractVillagePiece::new, chunkGenerator, templateManagerIn,
blockpos, this.components, this.rand,false,true);
this.components.forEach(piece -> piece.offset(0, 1, 0));
this.components.forEach(piece -> piece.getBoundingBox().minY -= 1);
this.recalculateStructureSize();
LogManager.getLogger().log(Level.DEBUG, "House at " +
this.components.get(0).getBoundingBox().minX + " " +
this.components.get(0).getBoundingBox().minY + " " +
this.components.get(0).getBoundingBox().minZ);
}
}
}

View file

@ -1,4 +0,0 @@
public-f net.minecraft.world.gen.feature.structure.Structure field_236384_t_ #LAND_TRANSFORMING_STRUCTURES
public-f net.minecraft.world.gen.settings.DimensionStructuresSettings field_236191_b_ #DEFAULT_STRUCTURE_CONFIGS
public-f net.minecraft.world.gen.FlatGenerationSettings field_202247_j #STRUCTURES
public-f net.minecraft.world.gen.settings.DimensionStructuresSettings field_236193_d_ #structures

View file

@ -4,7 +4,6 @@
"item.hdm_mod.subtle_knife": "Subtle Knife",
"item.hdm_mod.omelet": "Omelet",
"item.hdm_mod.omelet-cooked": "Omelet",
"item.hdm_mod.dust": "Dust",
"block.hdm_mod.block_of_dust": "Block of Dust",
"block.hdm_mod.window": "Window"

View file

@ -1,6 +0,0 @@
{
"parent": "item/generated",
"textures": {
"layer0": "hdm_mod:item/omelet"
}
}

View file

@ -1,23 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"#B",
"E "
],
"key": {
"#": {
"item": "minecraft:porkchop"
},
"B": {
"item": "minecraft:brown_mushroom"
},
"E": {
"item": "minecraft:egg"
}
},
"result": {
"item": "hdm_mod:omelet",
"count": 1
},
"group": "omelets"
}

View file

@ -1,11 +0,0 @@
{
"type": "minecraft:smelting",
"category": "food",
"ingredient": {
"item": "hdm_mod:omelet"
},
"result": "hdm_mod:omelet-cooked",
"experience": 1,
"cookingtime": 200,
"group": "omelets"
}

View file

@ -1,15 +0,0 @@
{
"name": "tutorialmod:house/start_pool",
"fallback": "minecraft:empty",
"elements": [
{
"weight": 1,
"element": {
"location": "tutorialmod:house",
"processors": "minecraft:empty",
"projection": "rigid",
"element_type": "minecraft:single_pool_element"
}
}
]
}