Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

(1.16.5) [SOLVED] TopSolidRangeConfig blocks spawning outside parameters


Recommended Posts

Hey there, I set up my ore generation file and the first ore I've made seems to be spawning a bit above the maximum height I set. I've been thinking in terms of the world coordinates when setting these numbers, with bedrock as 0 and everything else going up from there. 

public class OreGeneration {
	
	//the actual individual ores
	public static void generateOres(final BiomeLoadingEvent event) {
		if(!(event.getCategory().equals(Biome.Category.NETHER) || event.getCategory().equals(Biome.Category.THEEND))) {
			generateOre(event.getGeneration(), OreFeatureConfig.FillerBlockType.NATURAL_STONE, BlockInit.EGG_ORE.get().defaultBlockState(), 4, 15, 31, 15);

		}
	}
	
	//can be called at any time to make an ore
	private static void generateOre(BiomeGenerationSettingsBuilder settings, RuleTest fillerType, BlockState state, int veinSize,
			int minHeight, int maxHeight, int maxPerChunk) {
	settings.addFeature(GenerationStage.Decoration.UNDERGROUND_ORES, 
			Feature.ORE.configured(new OreFeatureConfig(fillerType, state, veinSize))
			.decorated(Placement.RANGE.configured(new TopSolidRangeConfig(minHeight, 0, maxHeight)))
			.squared().count(maxPerChunk));
	}

}

here's a picture of the ore, about 10 blocks above the number I set. https://imgur.com/a/8jflRKz

Is minecraft using a different set of numbers than the world coordinates? Or is the range just looser than I'm expecting it to be. Thank yall for help with this. 

Edited by Jurassicash
Link to post
Share on other sites

The position given by the placement is only the starting position of the ore gen. The ore gen then generates in a patch around that position, so can end up higher (depending on your vein size).

  • Like 1
Link to post
Share on other sites
5 hours ago, diesieben07 said:

The position given by the placement is only the starting position of the ore gen. The ore gen then generates in a patch around that position, so can end up higher (depending on your vein size).

Alright! Thank you for the answer, I was just curious how it worked. 

Link to post
Share on other sites
  • Jurassicash changed the title to (1.16.5) [SOLVED] TopSolidRangeConfig blocks spawning outside parameters

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • Sure, i played around with the code a bit and added a ".get()" to the end of the material, this removed all errors. Except its wrong because now I launch and the game crashes, yet eclipse gives me no errors. Heres my list: package djofox.gemstones.materials; import java.util.function.Supplier; import djofox.gemstones.init.ItemInit; import net.minecraft.item.IItemTier; import net.minecraft.item.crafting.Ingredient; import net.minecraft.util.LazyValue; public enum ToolMaterialList implements IItemTier { beryl(0, 131, 15.0f, 2.75f, 30, () -> { return Ingredient.of(ItemInit.beryl.get()); }), jade(2, 500, 7.0f, 2.25f, 23, () -> { return Ingredient.of(ItemInit.jade.get()); }), moissanite(2, 500, 7.0f, 2.25f, 23, () -> { return Ingredient.of(ItemInit.moissanite.get()); }), kunzite(0, 315, 12f, 0.5f, 20, () -> { return Ingredient.of(ItemInit.kunzite.get()); }), orpiment(2, 258, 10f, 0.5f, 20, () -> { return Ingredient.of(ItemInit.orpiment.get()); }), mercurySulfide(2, 1012, 5.5f, 2.0f, 14, () -> { return Ingredient.of(ItemInit.mercurySulfide.get()); }), blackDiamond(3, 2757, 8.0f, 3.0f, 2, () -> { return Ingredient.of(ItemInit.blackDiamond.get()); }), treatedCarbide(4, 2560, 10.0f, 5.0f, 2, () -> { return Ingredient.of(ItemInit.siliconCarbide.get()); }); private final int level; private final int uses; private final float speed; private final float damage; private final int enchantmentValue; private final LazyValue<Ingredient> repairIngredient; private ToolMaterialList(int p_i48458_3_, int p_i48458_4_, float p_i48458_5_, float p_i48458_6_, int p_i48458_7_, Supplier<Ingredient> p_i48458_8_) { this.level = p_i48458_3_; this.uses = p_i48458_4_; this.speed = p_i48458_5_; this.damage = p_i48458_6_; this.enchantmentValue = p_i48458_7_; this.repairIngredient = new LazyValue<>(p_i48458_8_); } public int getUses() { return this.uses; } public float getSpeed() { return this.speed; } public float getAttackDamageBonus() { return this.damage; } public int getLevel() { return this.level; } public int getEnchantmentValue() { return this.enchantmentValue; } public Ingredient getRepairIngredient() { return this.repairIngredient.get(); } } Heres my init class which causes the crash (from taking other stuff) And heres the error I get when I crash (I dont know if you need it but better safe than sorry)  
    • can you show your ToolMaterialList?
    • Ohh ok, that makes sense, but even still how could I fix it? I cant initialize my items before I do my ToolMaterialList because my items class uses it.
    • please use PascalCase when naming classes also, what are you doing? there's no need to extend the BrewingRecipe, you can just instantiate a new one  
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.