diff --git a/java/net/universe_factory/minecraft/test/Test.java b/java/net/universe_factory/minecraft/test/Test.java index f0c6d7f..3ef8df6 100644 --- a/java/net/universe_factory/minecraft/test/Test.java +++ b/java/net/universe_factory/minecraft/test/Test.java @@ -1,5 +1,9 @@ package net.universe_factory.minecraft.test; +import net.minecraft.item.Item; +import net.minecraft.item.ItemFood; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.terraingen.BiomeEvent.CreateDecorator; import net.universe_factory.minecraft.test.generic.GenericWood; @@ -8,6 +12,7 @@ import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.registry.GameRegistry; @Mod(modid = Test.MODID, version = Test.VERSION) public class Test { @@ -17,7 +22,8 @@ public class Test { @Instance(value = MODID) public static Test instance; - public static final GenericWood cherry = new GenericWood(new GenericWood.Info() { + public static final Item cherries = new ItemFood(2, 0.2f, false).setTextureName(MODID + ":cherries").setUnlocalizedName("cherries"); + public static final GenericWood cherryTree = new GenericWood(new GenericWood.Info() { @Override public String getName() { return "Cherry"; @@ -27,19 +33,38 @@ public class Test { public int getMinTreeHeight() { return 4; } + + @Override + public ItemStack getDrop(World world, int x, int y, int z, int meta, int fortune) { + int chance = 30; + + if (fortune > 0) { + chance -= 2 << fortune; + + if (chance < 5) + chance = 5; + } + + if (world.rand.nextInt(chance) == 0) + return new ItemStack(cherries, 1); + + return null; + } }); @EventHandler public void preInit(FMLInitializationEvent event) { MinecraftForge.TERRAIN_GEN_BUS.register(new TerrainGenHandler()); - cherry.register(); + GameRegistry.registerItem(cherries, "cherries"); + + cherryTree.register(); } public class TerrainGenHandler { @SubscribeEvent public void handleCreateDecorator(CreateDecorator event) { - event.newBiomeDecorator = new TestBiomeDecorator(cherry); + event.newBiomeDecorator = new TestBiomeDecorator(cherryTree); event.newBiomeDecorator.bigMushroomsPerChunk = event.originalBiomeDecorator.bigMushroomsPerChunk; event.newBiomeDecorator.cactiPerChunk = event.originalBiomeDecorator.cactiPerChunk; diff --git a/java/net/universe_factory/minecraft/test/generic/GenericWood.java b/java/net/universe_factory/minecraft/test/generic/GenericWood.java index 31b97f5..bdee1f9 100644 --- a/java/net/universe_factory/minecraft/test/generic/GenericWood.java +++ b/java/net/universe_factory/minecraft/test/generic/GenericWood.java @@ -206,6 +206,30 @@ public class GenericWood { // / 9 & 255; return 0xffffff; } + + @Override + public void dropBlockAsItemWithChance(World world, int x, int y, int z, int meta, float p, int fortune) { + if (!world.isRemote) { + int j1 = this.func_150123_b(meta); + + if (fortune > 0) { + j1 -= 2 << fortune; + + if (j1 < 10) { + j1 = 10; + } + } + + if (world.rand.nextInt(j1) == 0) { + Item item = this.getItemDropped(meta, world.rand, fortune); + this.dropBlockAsItem(world, x, y, z, new ItemStack(item, 1, this.damageDropped(meta))); + } + + ItemStack drop = info.getDrop(world, x, y, z, meta, fortune); + if (drop != null) + this.dropBlockAsItem(world, x, y, z, drop); + } + } } private class Sapling extends BlockSapling { @@ -317,5 +341,9 @@ public class GenericWood { public abstract String getName(); public abstract int getMinTreeHeight(); + + public ItemStack getDrop(World world, int x, int y, int z, int meta, int fortune) { + return null; + } } } diff --git a/resources/assets/neoraider_test/lang/en_US.lang b/resources/assets/neoraider_test/lang/en_US.lang index 9f71c34..c72e490 100644 --- a/resources/assets/neoraider_test/lang/en_US.lang +++ b/resources/assets/neoraider_test/lang/en_US.lang @@ -1,3 +1,5 @@ +item.cherries.name=Cherries + tile.woodCherry.name=Cherry Tree Wood Planks tile.logCherry.name=Cherry Tree Wood tile.leavesCherry.name=Cherry Tree Leaves