Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

hello!

 

How I can edit the code to generate blocks on top grass on the surface?

 

	private void runGenerator(WorldGenerator generator, World world, Random rand, int chunk_X, int chunk_Z, int chancesToSpawn, int minHeight, int maxHeight) {
    if (minHeight < 0 || maxHeight > 256 || minHeight > maxHeight)
        throw new IllegalArgumentException("Illegal Height Arguments for WorldGenerator");

    int heightDiff = maxHeight - minHeight + 1;
    for (int i = 0; i < chancesToSpawn; i ++) {
        int x = chunk_X * 16 + rand.nextInt(16);
        int y = minHeight + rand.nextInt(heightDiff);
        int z = chunk_Z * 16 + rand.nextInt(16);
        generator.generate(world, rand, x, y, z);
        System.out.printf("Cosa generada veinti");
    }
}

 

pss edit my code, many thanks!

u will need to find the surface block, I am not sure if vanilla has a method for that, or if u need to iterate over the blocks in the world until u find a grass block. after that add 1 to the y pos and u are above the grass

  • Author

i use the last code for the ores generator, but i need make a replicate  the same code for generate blocks on the surface and on top the grass block

 

this is the .java

 

package com.colorescraftmod.principal.items;

import java.util.Random;

import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
import net.minecraft.world.chunk.IChunkProvider;
import net.minecraft.world.gen.feature.WorldGenMinable;
import net.minecraft.world.gen.feature.WorldGenerator;

import cpw.mods.fml.common.IWorldGenerator;

public class ModWorldGen implements IWorldGenerator {

  private WorldGenerator multiore;		//Generates Multi Ore (used in Overworld)


public ModWorldGen() {
    this.multiore = new WorldGenSingleMinable(ModItems.multiore);
   // this.gen_cobblestone = new WorldGenMinable(Blocks.cobblestone, 16, Blocks.end_stone);
}

@Override
public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
	switch (world.provider.dimensionId) {
	case 0: //Overworld
		//this.runGenerator(this.gen_multi_ore, world, random, chunkX, chunkX, 20, 0, 64); 

		this.runGenerator(this.multiore, world, random, chunkX, chunkZ, 1120, 0, 254);

		break;
	case -1: //Nether

		break;
	case 1: //End

		break;
	}
}


private void runGenerator(WorldGenerator generator, World world, Random rand, int chunk_X, int chunk_Z, int chancesToSpawn, int minHeight, int maxHeight) {
    if (minHeight < 0 || maxHeight > 256 || minHeight > maxHeight)
        throw new IllegalArgumentException("Illegal Height Arguments for WorldGenerator");

    int heightDiff = maxHeight - minHeight + 1;
    for (int i = 0; i < chancesToSpawn; i ++) {
        int x = chunk_X * 16 + rand.nextInt(16);
        int y = minHeight + rand.nextInt(heightDiff);
        int z = chunk_Z * 16 + rand.nextInt(16);
        generator.generate(world, rand, x, y, z);
        System.out.printf("Cosa generada veinti");
    }
}
}

not until u understood what hes doing there and are able to ask me a specific question. im not gonna write ur mod 4 u

Are you creating a surface ore? If you are than perhaps you could create a method for your y coordinate that creates a blockPos list of all the blocks in the x z area that is randomized by your code, then iterate through it till the block type is grass, then add 1, and you should have it.

Just a suggestion. Also, please know what you are saying before you post, it really helps everyone else.

  • Author

only need a function for generate blocks on the surface... is only edit the last code... no make all the code

i don't know program anything :C

u will need to find the surface block, I am not sure if vanilla has a method for that, or if u need to iterate over the blocks in the world until u find a grass block. after that add 1 to the y pos and u are above the grass

 

and i answered that

we wont write ur mod 4 u.

If u want to write ur own mod learn java. then come back. or find some1 u can pay to write ur mod. but dont expect us to help u without u learning java.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.