- 397
- 8
- 33
Не подскажите, что вписать в код, чтобы растения генерировались обязательно около воды? У самого пока не очень получается
Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
Погляди вроде тростник, вдруг поможет.MrUser написал(а):Не подскажите, что вписать в код, чтобы растения генерировались обязательно около воды? У самого пока не очень получается
Не получилось сделать самостоятельно -_-[font=Verdana, Helvetica, Arial, sans-serif]Что именно не получилось?[/font]
Код в студию))))))MrUser написал(а):Не получилось сделать самостоятельно -_-[font=Verdana, Helvetica, Arial, sans-serif]Что именно не получилось?[/font]
package assets.gothicmod.src.generation;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.chunk.IChunkProvider;
import assets.gothicmod.src.gm_blocks;
import cpw.mods.fml.common.IWorldGenerator;
public class generation_swamp implements IWorldGenerator {
public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
switch(world.provider.dimensionId) {
case -1:
generateNether();
break;
case 0:
generateSurface(world, random, chunkX*16, chunkZ*16);
break;
case 1:
generateEnd();
break;
}
}
public void generateNether() {}
public void generateSurface(World world, Random random, int x, int z) {
x += random.nextInt(16);
z += random.nextInt(16);
if(world.getBiomeGenForCoords(x, z).biomeID == BiomeGenBase.swampland.biomeID) {
for (int y = 1; y < world.getHeight(); ++y) {
if (world.getBlockId(x, y - 1, z) == Block.grass.blockID && world.isAirBlock(x, y, z)) {
world.setBlock(x, y, z, gm_blocks.swamp_grass.blockID);
}
}
}
}
public void generateEnd() {}
}
Крашит или не спаунит?MrUser написал(а):Ну, у меня только так
Код:package assets.gothicmod.src.generation; import java.util.Random; import net.minecraft.block.Block; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.chunk.IChunkProvider; import assets.gothicmod.src.gm_blocks; import cpw.mods.fml.common.IWorldGenerator; public class generation_swamp implements IWorldGenerator { public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) { switch(world.provider.dimensionId) { case -1: generateNether(); break; case 0: generateSurface(world, random, chunkX*16, chunkZ*16); break; case 1: generateEnd(); break; } } public void generateNether() {} public void generateSurface(World world, Random random, int x, int z) { x += random.nextInt(16); z += random.nextInt(16); if(world.getBiomeGenForCoords(x, z).biomeID == BiomeGenBase.swampland.biomeID) { for (int y = 1; y < world.getHeight(); ++y) { if (world.getBlockId(x, y - 1, z) == Block.grass.blockID && world.isAirBlock(x, y, z)) { world.setBlock(x, y, z, gm_blocks.swamp_grass.blockID); } } } } public void generateEnd() {} }
Зафигато помог.Пробуй еще.
Расскажи что у тебя не получается.
if (world.getBlockId(x, y - 1, z) == Block.grass.blockID && world.isAirBlock(x, y, z)) {
private void generateSurface(World world, Random random, int x, int z) {
if (world.getBiomeGenForCoords(x, z) == BiomeGenBase.swampland) {
for (int y = 1; y < world.getHeight(); ++y) {
for (int x1 = x; x < x + 16; x1++) {
for (int z1 = z; z < z + 16; z1++) {
if (world.rand.nextInt(13) == 0) {
if (world.getBlockId(x1, y - 1, z1) == Blocks.grass.blockID && world.isAirBlock(x1, y, z1) &&
(world.getBlockMaterial(x1 + 1, y - 1, z1) == Material.water ||
world.getBlockMaterial(x1 - 1, y - 1, z1) == Material.water ||
world.getBlockMaterial(x1, y - 1, z1 + 1) == Material.water ||
world.getBlockMaterial(x1, y - 1, z1 - 1) == Material.water)) {
world.setBlock(x1, y, z1, gm_blocks.swamp_grass.blockID);
}
}
}
}
}
}
}