generated from tilera/1710mod
Added ore generation
This commit is contained in:
parent
fc3690ba16
commit
f88a395d7c
|
@ -5,12 +5,15 @@ import cpw.mods.fml.common.Mod;
|
|||
import cpw.mods.fml.common.event.FMLInitializationEvent;
|
||||
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
|
||||
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import ley.modding.alchemycraft.alchemy.ElementManager;
|
||||
import ley.modding.alchemycraft.block.ACBlocks;
|
||||
import ley.modding.alchemycraft.event.EventHandler;
|
||||
import ley.modding.alchemycraft.internal.Registry;
|
||||
import ley.modding.alchemycraft.items.ACItems;
|
||||
import ley.modding.alchemycraft.recipes.Recipes;
|
||||
import ley.modding.alchemycraft.tab.ACTab;
|
||||
import ley.modding.alchemycraft.worldgen.OreGen;
|
||||
import ley.modding.tileralib.api.IRegistry;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
|
@ -41,8 +44,10 @@ public class Alchemycraft {
|
|||
IRegistry registry = new Registry();
|
||||
|
||||
ACItems.register(registry);
|
||||
ACBlocks.register(registry);
|
||||
Recipes.loadRecipes(registry);
|
||||
|
||||
GameRegistry.registerWorldGenerator(new OreGen(), 2);
|
||||
}
|
||||
|
||||
@Mod.EventHandler
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
package ley.modding.alchemycraft.block;
|
||||
|
||||
import ley.modding.tileralib.api.IRegistry;
|
||||
import net.minecraft.block.Block;
|
||||
|
||||
public class ACBlocks {
|
||||
|
||||
public static Block alchemyore;
|
||||
public static Block fireore;
|
||||
public static Block waterore;
|
||||
public static Block earthore;
|
||||
public static Block airore;
|
||||
|
||||
public static void register(IRegistry reg) {
|
||||
|
||||
alchemyore = reg.registerBlock(new BlockOre(BlockOre.Type.ALCHEMY));
|
||||
fireore = reg.registerBlock(new BlockOre(BlockOre.Type.FIRE));
|
||||
waterore = reg.registerBlock(new BlockOre(BlockOre.Type.WATER));
|
||||
earthore = reg.registerBlock(new BlockOre(BlockOre.Type.EARTH));
|
||||
airore = reg.registerBlock(new BlockOre(BlockOre.Type.AIR));
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,96 @@
|
|||
package ley.modding.alchemycraft.block;
|
||||
|
||||
import ley.modding.alchemycraft.Alchemycraft;
|
||||
import ley.modding.alchemycraft.items.ACItems;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class BlockOre extends Block {
|
||||
|
||||
static IIcon alchemy;
|
||||
static IIcon fire;
|
||||
static IIcon water;
|
||||
static IIcon earth;
|
||||
static IIcon air;
|
||||
|
||||
Type type;
|
||||
|
||||
protected BlockOre(Type type) {
|
||||
super(Material.rock);
|
||||
this.type = type;
|
||||
setBlockName(type + "ore");
|
||||
setHardness(1.0F);
|
||||
setResistance(5.0F);
|
||||
setStepSound(soundTypeStone);
|
||||
setCreativeTab(Alchemycraft.tab);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int quantityDropped(Random rand) {
|
||||
return rand.nextInt(3) + 2;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerBlockIcons(IIconRegister reg) {
|
||||
alchemy = reg.registerIcon(Alchemycraft.MODID + ":alchemyore");
|
||||
fire = reg.registerIcon(Alchemycraft.MODID + ":fireore");
|
||||
water = reg.registerIcon(Alchemycraft.MODID + ":waterore");
|
||||
earth = reg.registerIcon(Alchemycraft.MODID + ":earthore");
|
||||
air = reg.registerIcon(Alchemycraft.MODID + ":airore");
|
||||
}
|
||||
|
||||
@Override
|
||||
public IIcon getIcon(int side, int meta) {
|
||||
switch (type) {
|
||||
case FIRE: return fire;
|
||||
case WATER: return water;
|
||||
case EARTH: return earth;
|
||||
case AIR: return air;
|
||||
default: return alchemy;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean canSilkHarvest() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemDropped(int meta, Random rand, int par3) {
|
||||
switch (type) {
|
||||
case FIRE: return ACItems.firedust;
|
||||
case WATER: return ACItems.waterdust;
|
||||
case EARTH: return ACItems.earthdust;
|
||||
case AIR: return ACItems.airdust;
|
||||
default: return ACItems.alchemydust;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockPlacedBy(World p_149689_1_, int p_149689_2_, int p_149689_3_, int p_149689_4_, EntityLivingBase p_149689_5_, ItemStack p_149689_6_) {
|
||||
super.onBlockPlacedBy(p_149689_1_, p_149689_2_, p_149689_3_, p_149689_4_, p_149689_5_, p_149689_6_);
|
||||
}
|
||||
|
||||
public enum Type {
|
||||
ALCHEMY,
|
||||
FIRE,
|
||||
WATER,
|
||||
EARTH,
|
||||
AIR;
|
||||
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString().toLowerCase();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
package ley.modding.alchemycraft.worldgen;
|
||||
|
||||
import cpw.mods.fml.common.IWorldGenerator;
|
||||
import ley.modding.alchemycraft.block.ACBlocks;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.chunk.IChunkProvider;
|
||||
import net.minecraft.world.gen.feature.WorldGenMinable;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class OreGen implements IWorldGenerator {
|
||||
|
||||
@Override
|
||||
public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
|
||||
if (world.provider.dimensionId == 0) {
|
||||
generateSurface(world, random, chunkX * 16, chunkZ * 16, ACBlocks.alchemyore);
|
||||
generateSurface(world, random, chunkX * 16, chunkZ * 16, ACBlocks.fireore);
|
||||
generateSurface(world, random, chunkX * 16, chunkZ * 16, ACBlocks.waterore);
|
||||
generateSurface(world, random, chunkX * 16, chunkZ * 16, ACBlocks.earthore);
|
||||
generateSurface(world, random, chunkX * 16, chunkZ * 16, ACBlocks.airore);
|
||||
}
|
||||
}
|
||||
|
||||
private void generateSurface(World world, Random random, int blockX, int blockZ, Block block) {
|
||||
for (int k = 0; k < 16; k++) {
|
||||
int randPosX = blockX + random.nextInt(16);
|
||||
int randPosY = random.nextInt(64);
|
||||
int randPosZ = blockZ + random.nextInt(16);
|
||||
(new WorldGenMinable(block, 4)).generate(world, random, randPosX, randPosY, randPosZ);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -5,3 +5,9 @@ item.fire.name=Fire Dust
|
|||
item.water.name=Water Dust
|
||||
item.earth.name=Earth Dust
|
||||
item.air.name=Air Dust
|
||||
|
||||
tile.alchemyore.name=Alchemy Ore
|
||||
tile.fireore.name=Fire Ore
|
||||
tile.waterore.name=Water Ore
|
||||
tile.earthore.name=Earth Ore
|
||||
tile.airore.name=Air Ore
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 595 B |
Binary file not shown.
After Width: | Height: | Size: 528 B |
Binary file not shown.
After Width: | Height: | Size: 582 B |
Binary file not shown.
After Width: | Height: | Size: 668 B |
Binary file not shown.
After Width: | Height: | Size: 532 B |
Loading…
Reference in New Issue