- 6
- 2
Java:
package ru.speedy.allores;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
@Mod(modid = Main.MODID, name = Main.MODNAME, version = Main.VERSION)
public class Main {
public static final CreativeTabs ores = new CreativeTabs ("ores") {
public Item getTabIconItem() {
return Item.getItemFromBlock(palladiumore);
}
};
public static final String MODID = "allores";
public static final String MODNAME = "allores";
public static final String VERSION = "1.0.0";
public static final String MC_VERSION = "1.7.10";
public static Block palladiumore;
public static OreGen bestblockgenerator = new OreGen();
public static Item palladiumingot;
public static OreGen oregen = new OreGen();
@EventHandler
public void preload(FMLPreInitializationEvent event) {
{
}
}
{
palladiumore = new BlockTut(Material.rock,"palladiumore","palladiumore").setCreativeTab(ores);
palladiumingot = new Items("palladiumingot", "palladiumingot",64).setCreativeTab(ores);
}
package ru.speedy.allores;
import java.util.Random;
import cpw.mods.fml.common.IWorldGenerator;
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;
public class OreGen implements IWorldGenerator {
@Override
public void generate(Random rand, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
generateOverworld(rand, chunkX, chunkZ, world);
generateNether(rand, chunkX, chunkZ, world);
generateEnd(rand, chunkX, chunkZ, world);
}
private void generateOverworld(Random rand, int chunkX, int chunkZ, World world) {
generateOverworld(world, rand, chunkX * 16, chunkZ * 16);
}
private void generateNether(Random rand, int chunkX, int chunkZ, World world) {
generateNether(world, rand, chunkX * 16, chunkZ * 16);
}
private void generateEnd(Random rand, int chunkX, int chunkZ, World world) {
generateEnd(world, rand, chunkX * 16, chunkZ * 16);
}
public void generateOverworld(World world, Random rand, int blockXPos, int blockZPos) {
addOreSpawn(Main.palladiumore, Blocks.stone, world, rand, blockXPos, blockZPos, 16, 16, 10, 25, 1, 3, 100, 5, 160);
}
public void generateNether(World world, Random rand, int blockXPos, int blockZPos) {
addOreSpawn(Main.palladiumore, Blocks.netherrack, world, rand, blockXPos, blockZPos, 16, 16, 1, 2, 1, 1, 10, 5, 6);
}
public void generateEnd(World world, Random rand, int blockXPos, int blockZPos) {
addOreSpawn(Main.palladiumore, Blocks.end_stone, world, rand, blockXPos, blockZPos, 16, 16, 1, 2, 1, 1, 10, 5, 6);
}
/**
* Добавляет генерацию руды в Minecraft. Просто воспользуйтесь этим методом для регистрации генерируемых руд.
@param block palladiumore
@param block replace Блок, рядом с которым хотите генерировать
@param world Мир (не измерение), в котором этот блок должен генерироваться
@param random Случайное число для получения координат генерации блока
@param blockXPos Число для того, чтобы было пустое место по координатам X для метода генерации (использует кварцевая руда)
@param blockZPos Число для того, чтобы было пустое место по координатам Z для метода генерации (использует кварцевая руда)
@param maxX Число, которое настроит максимальную X координату для генерации руды на оси X на чанк
@param maxZ Число, которое настроит максимальную Z координату для генерации руды на оси Z на чанк
@param minVeinSize Минимальное число блоков руды в одной жиле
@param maxVeinSize Максимальное число блоков руды в одной жиле
@param minVeinsPerChunk Минимальное число жил в чанке
@param maxVeinsPerChunk Максимальное число жил в чанке
@param chancesToSpawn Шанс генерации блоков на чанк в процентах
@param minY Минимальная координата Y на которой руда может сгенерироваться
@param maxY Максимальная координата Y на которой руда может сгенерироваться
**/
public static void addOreSpawn(Block ore, Block replace, World world, Random rand, int blockXPos, int blockZPos, int maxX, int maxZ,
int minVeinSize, int maxVeinSize, int minVeinsPerChunk, int maxVeinsPerChunk, int chanceToSpawn, int minY, int maxY) {
if (rand.nextInt(101) < (100 - chanceToSpawn)) return;
int veins = rand.nextInt(maxVeinsPerChunk - minVeinsPerChunk + 1) + minVeinsPerChunk;
for (int i = 0; i < veins; i++) {
int posX = blockXPos + rand.nextInt(maxX);
int posY = minY + rand.nextInt(maxY - minY);
int posZ = blockZPos + rand.nextInt(maxZ);
(new WorldGenMinable(ore, minVeinSize + rand.nextInt(maxVeinSize - minVeinSize + 1),
replace)).generate(world, rand, posX, posY, posZ);
System.out.println(posX + posY + posZ);
}
}
package ru.speedy.allores;
import java.util.List;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
public class Items extends Item {
boolean mode = false;
public Items(String name, String texture, int maxStackSize) {
this.canRepair = false;
this.setUnlocalizedName(name);
this.setTextureName(Main.MODID + ":" + texture);
this.setCreativeTab(Main.ores);
//this.setMaxDamage(800);
this.maxStackSize = maxStackSize;
GameRegistry.registerItem(this, name);
}
}
}
}