it really did help to put all my mod_food files together thanks!
But i also have a question how do you make an entity spawn when you break something like how silverfish spawn when you break the blocks they're hiding as.
it really did help to put all my mod_food files together thanks!
But i also have a question how do you make an entity spawn when you break something like how silverfish spawn when you break the blocks they're hiding as.
Look at BlockSilverfish.
Rollback Post to RevisionRollBack
“Computers are incredibly fast, accurate and stupid; humans are incredibly slow, inaccurate and brilliant; together they are powerful beyond imagination."
For some reason this block turns out not climbable? Its almost an exact copy of a ladder but with a different name? Can you please tell me why this does not work?
package net.minecraft.src;
import java.util.Random;
public class BlockChain extends Block
{
protected BlockChain(int par1, int par2)
{
super(par1, par2, Material.iron);
}
/**
* Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been
* cleared to be reused)
*/
public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4)
{
int i = par1World.getBlockMetadata(par2, par3, par4);
float f = 0.125F;
if (i == 2)
{
setBlockBounds(0.0F, 0.0F, 1.0F - f, 1.0F, 1.0F, 1.0F);
}
if (i == 3)
{
setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, f);
}
if (i == 4)
{
setBlockBounds(1.0F - f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
}
if (i == 5)
{
setBlockBounds(0.0F, 0.0F, 0.0F, f, 1.0F, 1.0F);
}
return super.getCollisionBoundingBoxFromPool(par1World, par2, par3, par4);
}
/**
* Returns the bounding box of the wired rectangular prism to render.
*/
public AxisAlignedBB getSelectedBoundingBoxFromPool(World par1World, int par2, int par3, int par4)
{
int i = par1World.getBlockMetadata(par2, par3, par4);
float f = 0.125F;
if (i == 2)
{
setBlockBounds(0.0F, 0.0F, 1.0F - f, 1.0F, 1.0F, 1.0F);
}
if (i == 3)
{
setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, f);
}
if (i == 4)
{
setBlockBounds(1.0F - f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
}
if (i == 5)
{
setBlockBounds(0.0F, 0.0F, 0.0F, f, 1.0F, 1.0F);
}
return super.getSelectedBoundingBoxFromPool(par1World, par2, par3, par4);
}
/**
* Is this block (a) opaque and (B) a full 1m cube? This determines whether or not to render the shared face of two
* adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block.
*/
public boolean isOpaqueCube()
{
return false;
}
/**
* If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc)
*/
public boolean renderAsNormalBlock()
{
return false;
}
/**
* The type of render function that is called for this block
*/
public int getRenderType()
{
return 8;
}
/**
* Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z
*/
public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)
{
if (par1World.isBlockNormalCube(par2 - 1, par3, par4))
{
return true;
}
if (par1World.isBlockNormalCube(par2 + 1, par3, par4))
{
return true;
}
if (par1World.isBlockNormalCube(par2, par3, par4 - 1))
{
return true;
}
return par1World.isBlockNormalCube(par2, par3, par4 + 1);
}
/**
* Called when a block is placed using an item. Used often for taking the facing and figuring out how to position
* the item. Args: x, y, z, facing
*/
public void onBlockPlaced(World par1World, int par2, int par3, int par4, int par5)
{
int i = par1World.getBlockMetadata(par2, par3, par4);
if ((i == 0 || par5 == 2) && par1World.isBlockNormalCube(par2, par3, par4 + 1))
{
i = 2;
}
if ((i == 0 || par5 == 3) && par1World.isBlockNormalCube(par2, par3, par4 - 1))
{
i = 3;
}
if ((i == 0 || par5 == 4) && par1World.isBlockNormalCube(par2 + 1, par3, par4))
{
i = 4;
}
if ((i == 0 || par5 == 5) && par1World.isBlockNormalCube(par2 - 1, par3, par4))
{
i = 5;
}
par1World.setBlockMetadataWithNotify(par2, par3, par4, i);
}
/**
* Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are
* their own) Args: x, y, z, neighbor blockID
*/
public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5)
{
int i = par1World.getBlockMetadata(par2, par3, par4);
boolean flag = false;
if (i == 2 && par1World.isBlockNormalCube(par2, par3, par4 + 1))
{
flag = true;
}
if (i == 3 && par1World.isBlockNormalCube(par2, par3, par4 - 1))
{
flag = true;
}
if (i == 4 && par1World.isBlockNormalCube(par2 + 1, par3, par4))
{
flag = true;
}
if (i == 5 && par1World.isBlockNormalCube(par2 - 1, par3, par4))
{
flag = true;
}
if (!flag)
{
dropBlockAsItem(par1World, par2, par3, par4, i, 0);
par1World.setBlockWithNotify(par2, par3, par4, 0);
}
super.onNeighborBlockChange(par1World, par2, par3, par4, par5);
}
/**
* Returns the quantity of items to drop on block destruction.
*/
public int quantityDropped(Random par1Random)
{
return 1;
}
}
For some reason this block turns out not climbable? Its almost an exact copy of a ladder but with a different name? Can you please tell me why this does not work?
package net.minecraft.src;
import java.util.Random;
public class BlockChain extends Block
{
protected BlockChain(int par1, int par2)
{
super(par1, par2, Material.iron);
}
/**
* Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been
* cleared to be reused)
*/
public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4)
{
int i = par1World.getBlockMetadata(par2, par3, par4);
float f = 0.125F;
if (i == 2)
{
setBlockBounds(0.0F, 0.0F, 1.0F - f, 1.0F, 1.0F, 1.0F);
}
if (i == 3)
{
setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, f);
}
if (i == 4)
{
setBlockBounds(1.0F - f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
}
if (i == 5)
{
setBlockBounds(0.0F, 0.0F, 0.0F, f, 1.0F, 1.0F);
}
return super.getCollisionBoundingBoxFromPool(par1World, par2, par3, par4);
}
/**
* Returns the bounding box of the wired rectangular prism to render.
*/
public AxisAlignedBB getSelectedBoundingBoxFromPool(World par1World, int par2, int par3, int par4)
{
int i = par1World.getBlockMetadata(par2, par3, par4);
float f = 0.125F;
if (i == 2)
{
setBlockBounds(0.0F, 0.0F, 1.0F - f, 1.0F, 1.0F, 1.0F);
}
if (i == 3)
{
setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, f);
}
if (i == 4)
{
setBlockBounds(1.0F - f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
}
if (i == 5)
{
setBlockBounds(0.0F, 0.0F, 0.0F, f, 1.0F, 1.0F);
}
return super.getSelectedBoundingBoxFromPool(par1World, par2, par3, par4);
}
/**
* Is this block (a) opaque and (B) a full 1m cube? This determines whether or not to render the shared face of two
* adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block.
*/
public boolean isOpaqueCube()
{
return false;
}
/**
* If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc)
*/
public boolean renderAsNormalBlock()
{
return false;
}
/**
* The type of render function that is called for this block
*/
public int getRenderType()
{
return 8;
}
/**
* Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z
*/
public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)
{
if (par1World.isBlockNormalCube(par2 - 1, par3, par4))
{
return true;
}
if (par1World.isBlockNormalCube(par2 + 1, par3, par4))
{
return true;
}
if (par1World.isBlockNormalCube(par2, par3, par4 - 1))
{
return true;
}
return par1World.isBlockNormalCube(par2, par3, par4 + 1);
}
/**
* Called when a block is placed using an item. Used often for taking the facing and figuring out how to position
* the item. Args: x, y, z, facing
*/
public void onBlockPlaced(World par1World, int par2, int par3, int par4, int par5)
{
int i = par1World.getBlockMetadata(par2, par3, par4);
if ((i == 0 || par5 == 2) && par1World.isBlockNormalCube(par2, par3, par4 + 1))
{
i = 2;
}
if ((i == 0 || par5 == 3) && par1World.isBlockNormalCube(par2, par3, par4 - 1))
{
i = 3;
}
if ((i == 0 || par5 == 4) && par1World.isBlockNormalCube(par2 + 1, par3, par4))
{
i = 4;
}
if ((i == 0 || par5 == 5) && par1World.isBlockNormalCube(par2 - 1, par3, par4))
{
i = 5;
}
par1World.setBlockMetadataWithNotify(par2, par3, par4, i);
}
/**
* Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are
* their own) Args: x, y, z, neighbor blockID
*/
public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5)
{
int i = par1World.getBlockMetadata(par2, par3, par4);
boolean flag = false;
if (i == 2 && par1World.isBlockNormalCube(par2, par3, par4 + 1))
{
flag = true;
}
if (i == 3 && par1World.isBlockNormalCube(par2, par3, par4 - 1))
{
flag = true;
}
if (i == 4 && par1World.isBlockNormalCube(par2 + 1, par3, par4))
{
flag = true;
}
if (i == 5 && par1World.isBlockNormalCube(par2 - 1, par3, par4))
{
flag = true;
}
if (!flag)
{
dropBlockAsItem(par1World, par2, par3, par4, i, 0);
par1World.setBlockWithNotify(par2, par3, par4, 0);
}
super.onNeighborBlockChange(par1World, par2, par3, par4, par5);
}
/**
* Returns the quantity of items to drop on block destruction.
*/
public int quantityDropped(Random par1Random)
{
return 1;
}
}
Ladders and vines work because there is a bit of code in EntityPlayer for them.
Rollback Post to RevisionRollBack
“Computers are incredibly fast, accurate and stupid; humans are incredibly slow, inaccurate and brilliant; together they are powerful beyond imagination."
Minecraft has stopped running because it encountered a problem.
--- BEGIN ERROR REPORT 6b2bd628 --------
Generated 4/2/12 10:28 AM
Minecraft: Minecraft 1.2.4
OS: Windows 7 (x86) version 6.1
Java: 1.7.0_03, Oracle Corporation
VM: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation
LWJGL: 2.4.2
OpenGL: ATI Radeon HD 3200 Graphics version 2.1.8794, ATI Technologies Inc.
java.lang.IllegalArgumentException: n must be positive
at java.util.Random.nextInt(Unknown Source)
at net.minecraft.src.SpawnerAnimals.performWorldGenSpawning(SpawnerAnimals.java:252)
at net.minecraft.src.ChunkProviderGenerate.populate(ChunkProviderGenerate.java:512)
at net.minecraft.src.ChunkProvider.populate(ChunkProvider.java:195)
at net.minecraft.src.Chunk.populateChunk(Chunk.java:1150)
at net.minecraft.src.ChunkProvider.loadChunk(ChunkProvider.java:106)
at net.minecraft.src.ChunkProvider.provideChunk(ChunkProvider.java:119)
at net.minecraft.src.World.getChunkFromChunkCoords(World.java:651)
at net.minecraft.src.World.getBlockId(World.java:544)
at net.minecraft.client.Minecraft.preloadWorld(Minecraft.java:2278)
at net.minecraft.client.Minecraft.changeWorld(Minecraft.java:2165)
at net.minecraft.client.Minecraft.changeWorld2(Minecraft.java:2112)
at net.minecraft.client.Minecraft.startWorld(Minecraft.java:1998)
at net.minecraft.src.GuiSelectWorld.selectWorld(GuiSelectWorld.java:204)
at net.minecraft.src.GuiSelectWorld.actionPerformed(GuiSelectWorld.java:153)
at net.minecraft.src.GuiScreen.mouseClicked(GuiScreen.java:108)
at net.minecraft.src.GuiScreen.handleMouseInput(GuiScreen.java:175)
at net.minecraft.src.GuiScreen.handleInput(GuiScreen.java:161)
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1638)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:890)
at net.minecraft.client.Minecraft.run(Minecraft.java:798)
at java.lang.Thread.run(Unknown Source)
--- END ERROR REPORT dc636559 ----------
Please help if you know whats wrong! My mod really needs this to work!
Thanks!!!
First of all, these are AMAZING tutorials. I have been looking for a thread like this and I've finally got it.
Sadly I have got some errors too... take a look:
-Simple Block Mod-
package net.minecraft.src;
public class mod_NightsMod extends BaseMod{
public static final Block Coalblock = new BlockCoal(160, 0).setBlockName("Coalblock").setHardness(3F).setResistance(4F);
public void load(){
Coalblock.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/NightsMod/coalblock.png");
ModLoader.registerBlock(Coalblock);
ModLoader.addName(Coalbloc, "Coal Block");
ModLoader.addRecipe(new ItemStack(Coalblock, 1), new Object[] { "#", Character.valueOf('#'), Item.coal });
}
public String getVersion(){
return "1.2.4";
}
}
package net.minecraft.src;
import java.util.Random;
public class BlockCoal extends Block{
public BlockCoal(int i, int j){
super(i, j, Material.rock);
}
public int idDropped(int i, Random random, int j){
return 283; //Coals id
}
public int quantityDroppeD(Random random){
return 4; //I plan ot use addShapelessRecipe later,
//so that you need 4 coal to make the block
//similar to an iron block.
}
Error Report:
Mods loaded: 2
ModLoader 1.2.4
mod_Nightsmod 1.2.4
Minecraft has crashed!
----------------------
Minecraft has stopped running because it encountered a problem.
--- BEGIN ERROR REPORT 9b7d0e3d --------
Generated 4/2/12 1:25 PM
Minecraft: Minecraft 1.2.4
OS: Windows XP (x86) version 5.1
Java: 1.7.0_03, Oracle Corporation
VM: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation
LWJGL: 2.4.2
OpenGL: Intel 965/963 Graphics Media Accelerator version 1.5.0 - Build 6.14.10.4859, Intel
java.lang.RuntimeException: Already decorating!!
at net.minecraft.src.BiomeDecorator.decorate(BiomeDecorator.java:177)
at net.minecraft.src.BiomeGenBase.decorate(BiomeGenBase.java:340)
at net.minecraft.src.BiomeGenJungle.decorate(BiomeGenJungle.java:57)
at net.minecraft.src.ChunkProviderGenerate.populate(ChunkProviderGenerate.java:511)
at net.minecraft.src.ChunkProvider.populate(ChunkProvider.java:195)
at net.minecraft.src.Chunk.populateChunk(Chunk.java:1150)
at net.minecraft.src.ChunkProvider.loadChunk(ChunkProvider.java:106)
at net.minecraft.src.ChunkProvider.provideChunk(ChunkProvider.java:119)
at net.minecraft.src.World.getChunkFromChunkCoords(World.java:651)
at net.minecraft.src.World.getChunkFromBlockCoords(World.java:643)
at net.minecraft.src.WorldGenerator.setBlockAndMetadata(WorldGenerator.java:46)
at net.minecraft.src.WorldGenerator.func_50073_a(WorldGenerator.java:34)
at net.minecraft.src.WorldGenTrees.generate(WorldGenTrees.java:83)
at net.minecraft.src.BiomeDecorator.decorate(BiomeDecorator.java:233)
at net.minecraft.src.BiomeDecorator.decorate(BiomeDecorator.java:185)
at net.minecraft.src.BiomeGenBase.decorate(BiomeGenBase.java:340)
at net.minecraft.src.BiomeGenJungle.decorate(BiomeGenJungle.java:57)
at net.minecraft.src.ChunkProviderGenerate.populate(ChunkProviderGenerate.java:511)
at net.minecraft.src.ChunkProvider.populate(ChunkProvider.java:195)
at net.minecraft.src.Chunk.populateChunk(Chunk.java:1150)
at net.minecraft.src.ChunkProvider.loadChunk(ChunkProvider.java:106)
at net.minecraft.src.ChunkProvider.provideChunk(ChunkProvider.java:119)
at net.minecraft.src.World.getChunkFromChunkCoords(World.java:651)
at net.minecraft.src.World.getBlockId(World.java:544)
at net.minecraft.client.Minecraft.preloadWorld(Minecraft.java:2278)
at net.minecraft.client.Minecraft.changeWorld(Minecraft.java:2165)
at net.minecraft.client.Minecraft.changeWorld2(Minecraft.java:2112)
at net.minecraft.client.Minecraft.startWorld(Minecraft.java:1992)
at net.minecraft.src.GuiCreateWorld.actionPerformed(GuiCreateWorld.java:217)
at net.minecraft.src.GuiScreen.mouseClicked(GuiScreen.java:108)
at net.minecraft.src.GuiCreateWorld.mouseClicked(GuiCreateWorld.java:327)
at net.minecraft.src.GuiScreen.handleMouseInput(GuiScreen.java:175)
at net.minecraft.src.GuiScreen.handleInput(GuiScreen.java:161)
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1638)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:890)
at net.minecraft.client.Minecraft.run(Minecraft.java:798)
at java.lang.Thread.run(Unknown Source)
--- END ERROR REPORT 64c5278f ----------
This error occurs at the end of the world generation process.
question? is it possible to change the player model? if it is how do you do it... i've been trying to find mods that change the player model for a while now...
Please post in Mod Development. This isn't just a thread to ask questions in that aren't related to the tutorials.
Minecraft has stopped running because it encountered a problem.
--- BEGIN ERROR REPORT 6b2bd628 --------
Generated 4/2/12 10:28 AM
Minecraft: Minecraft 1.2.4
OS: Windows 7 (x86) version 6.1
Java: 1.7.0_03, Oracle Corporation
VM: Java HotSpot™ Client VM (mixed mode), Oracle Corporation
LWJGL: 2.4.2
OpenGL: ATI Radeon HD 3200 Graphics version 2.1.8794, ATI Technologies Inc.
java.lang.IllegalArgumentException: n must be positive
at java.util.Random.nextInt(Unknown Source)
at net.minecraft.src.SpawnerAnimals.performWorldGenSpawning(SpawnerAnimals.java:252)
at net.minecraft.src.ChunkProviderGenerate.populate(ChunkProviderGenerate.java:512)
at net.minecraft.src.ChunkProvider.populate(ChunkProvider.java:195)
at net.minecraft.src.Chunk.populateChunk(Chunk.java:1150)
at net.minecraft.src.ChunkProvider.loadChunk(ChunkProvider.java:106)
at net.minecraft.src.ChunkProvider.provideChunk(ChunkProvider.java:119)
at net.minecraft.src.World.getChunkFromChunkCoords(World.java:651)
at net.minecraft.src.World.getBlockId(World.java:544)
at net.minecraft.client.Minecraft.preloadWorld(Minecraft.java:2278)
at net.minecraft.client.Minecraft.changeWorld(Minecraft.java:2165)
at net.minecraft.client.Minecraft.changeWorld2(Minecraft.java:2112)
at net.minecraft.client.Minecraft.startWorld(Minecraft.java:1998)
at net.minecraft.src.GuiSelectWorld.selectWorld(GuiSelectWorld.java:204)
at net.minecraft.src.GuiSelectWorld.actionPerformed(GuiSelectWorld.java:153)
at net.minecraft.src.GuiScreen.mouseClicked(GuiScreen.java:108)
at net.minecraft.src.GuiScreen.handleMouseInput(GuiScreen.java:175)
at net.minecraft.src.GuiScreen.handleInput(GuiScreen.java:161)
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1638)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:890)
at net.minecraft.client.Minecraft.run(Minecraft.java:798)
at java.lang.Thread.run(Unknown Source)
--- END ERROR REPORT dc636559 ----------
Please help if you know whats wrong! My mod really needs this to work!
Thanks!!!
Post your code please. It looks like something to do with spawning though.
Rollback Post to RevisionRollBack
“Computers are incredibly fast, accurate and stupid; humans are incredibly slow, inaccurate and brilliant; together they are powerful beyond imagination."
First of all, these are AMAZING tutorials. I have been looking for a thread like this and I've finally got it.
Sadly I have got some errors too... take a look:
-Simple Block Mod-
package net.minecraft.src;
public class mod_NightsMod extends BaseMod{
public static final Block Coalblock = new BlockCoal(160, 0).setBlockName("Coalblock").setHardness(3F).setResistance(4F);
public void load(){
Coalblock.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/NightsMod/coalblock.png");
ModLoader.registerBlock(Coalblock);
ModLoader.addName(Coalbloc, "Coal Block");
ModLoader.addRecipe(new ItemStack(Coalblock, 1), new Object[] { "#", Character.valueOf('#'), Item.coal });
}
public String getVersion(){
return "1.2.4";
}
}
package net.minecraft.src;
import java.util.Random;
public class BlockCoal extends Block{
public BlockCoal(int i, int j){
super(i, j, Material.rock);
}
public int idDropped(int i, Random random, int j){
return 283; //Coals id
}
public int quantityDroppeD(Random random){
return 4; //I plan ot use addShapelessRecipe later,
//so that you need 4 coal to make the block
//similar to an iron block.
}
Error Report:
Mods loaded: 2
ModLoader 1.2.4
mod_Nightsmod 1.2.4
Minecraft has crashed!
----------------------
Minecraft has stopped running because it encountered a problem.
--- BEGIN ERROR REPORT 9b7d0e3d --------
Generated 4/2/12 1:25 PM
Minecraft: Minecraft 1.2.4
OS: Windows XP (x86) version 5.1
Java: 1.7.0_03, Oracle Corporation
VM: Java HotSpot™ Client VM (mixed mode), Oracle Corporation
LWJGL: 2.4.2
OpenGL: Intel 965/963 Graphics Media Accelerator version 1.5.0 - Build 6.14.10.4859, Intel
java.lang.RuntimeException: Already decorating!!
at net.minecraft.src.BiomeDecorator.decorate(BiomeDecorator.java:177)
at net.minecraft.src.BiomeGenBase.decorate(BiomeGenBase.java:340)
at net.minecraft.src.BiomeGenJungle.decorate(BiomeGenJungle.java:57)
at net.minecraft.src.ChunkProviderGenerate.populate(ChunkProviderGenerate.java:511)
at net.minecraft.src.ChunkProvider.populate(ChunkProvider.java:195)
at net.minecraft.src.Chunk.populateChunk(Chunk.java:1150)
at net.minecraft.src.ChunkProvider.loadChunk(ChunkProvider.java:106)
at net.minecraft.src.ChunkProvider.provideChunk(ChunkProvider.java:119)
at net.minecraft.src.World.getChunkFromChunkCoords(World.java:651)
at net.minecraft.src.World.getChunkFromBlockCoords(World.java:643)
at net.minecraft.src.WorldGenerator.setBlockAndMetadata(WorldGenerator.java:46)
at net.minecraft.src.WorldGenerator.func_50073_a(WorldGenerator.java:34)
at net.minecraft.src.WorldGenTrees.generate(WorldGenTrees.java:83)
at net.minecraft.src.BiomeDecorator.decorate(BiomeDecorator.java:233)
at net.minecraft.src.BiomeDecorator.decorate(BiomeDecorator.java:185)
at net.minecraft.src.BiomeGenBase.decorate(BiomeGenBase.java:340)
at net.minecraft.src.BiomeGenJungle.decorate(BiomeGenJungle.java:57)
at net.minecraft.src.ChunkProviderGenerate.populate(ChunkProviderGenerate.java:511)
at net.minecraft.src.ChunkProvider.populate(ChunkProvider.java:195)
at net.minecraft.src.Chunk.populateChunk(Chunk.java:1150)
at net.minecraft.src.ChunkProvider.loadChunk(ChunkProvider.java:106)
at net.minecraft.src.ChunkProvider.provideChunk(ChunkProvider.java:119)
at net.minecraft.src.World.getChunkFromChunkCoords(World.java:651)
at net.minecraft.src.World.getBlockId(World.java:544)
at net.minecraft.client.Minecraft.preloadWorld(Minecraft.java:2278)
at net.minecraft.client.Minecraft.changeWorld(Minecraft.java:2165)
at net.minecraft.client.Minecraft.changeWorld2(Minecraft.java:2112)
at net.minecraft.client.Minecraft.startWorld(Minecraft.java:1992)
at net.minecraft.src.GuiCreateWorld.actionPerformed(GuiCreateWorld.java:217)
at net.minecraft.src.GuiScreen.mouseClicked(GuiScreen.java:108)
at net.minecraft.src.GuiCreateWorld.mouseClicked(GuiCreateWorld.java:327)
at net.minecraft.src.GuiScreen.handleMouseInput(GuiScreen.java:175)
at net.minecraft.src.GuiScreen.handleInput(GuiScreen.java:161)
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1638)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:890)
at net.minecraft.client.Minecraft.run(Minecraft.java:798)
at java.lang.Thread.run(Unknown Source)
--- END ERROR REPORT 64c5278f ----------
This error occurs at the end of the world generation process.
When i try the Flower tutorial, the following error is shown:
Minecraft has crashed!
----------------------
Minecraft has stopped running because it encountered a problem.
--- BEGIN ERROR REPORT ceb11886 --------
Generated 02.04.12 21:34
Minecraft: Minecraft 1.2.4
OS: Windows 7 (amd64) version 6.1
Java: 1.7.0, Oracle Corporation
VM: Java HotSpot™ 64-Bit Server VM (mixed mode), Oracle Corporation
LWJGL: 2.4.2
OpenGL: GeForce GTX 460/PCI/SSE2 version 4.1.0, NVIDIA Corporation
java.lang.RuntimeException: Already decorating!!
at net.minecraft.src.BiomeDecorator.decorate(BiomeDecorator.java:177)
at net.minecraft.src.BiomeGenBase.decorate(BiomeGenBase.java:340)
at net.minecraft.src.ChunkProviderGenerate.populate(ChunkProviderGenerate.java:511)
at net.minecraft.src.ChunkProvider.populate(ChunkProvider.java:195)
at net.minecraft.src.Chunk.populateChunk(Chunk.java:1140)
at net.minecraft.src.ChunkProvider.loadChunk(ChunkProvider.java:106)
at net.minecraft.src.ChunkProvider.provideChunk(ChunkProvider.java:119)
at net.minecraft.src.World.getChunkFromChunkCoords(World.java:651)
at net.minecraft.src.World.getChunkFromBlockCoords(World.java:643)
at net.minecraft.src.WorldGenerator.setBlockAndMetadata(WorldGenerator.java:46)
at net.minecraft.src.WorldGenerator.func_50073_a(WorldGenerator.java:34)
at net.minecraft.src.WorldGenTaiga2.generate(WorldGenTaiga2.java:71)
at net.minecraft.src.BiomeDecorator.decorate(BiomeDecorator.java:233)
at net.minecraft.src.BiomeDecorator.decorate(BiomeDecorator.java:185)
at net.minecraft.src.BiomeGenBase.decorate(BiomeGenBase.java:340)
at net.minecraft.src.ChunkProviderGenerate.populate(ChunkProviderGenerate.java:511)
at net.minecraft.src.ChunkProvider.populate(ChunkProvider.java:195)
at net.minecraft.src.Chunk.populateChunk(Chunk.java:1135)
at net.minecraft.src.ChunkProvider.loadChunk(ChunkProvider.java:106)
at net.minecraft.src.ChunkProvider.provideChunk(ChunkProvider.java:119)
at net.minecraft.src.World.getChunkFromChunkCoords(World.java:651)
at net.minecraft.src.World.getBlockId(World.java:544)
at net.minecraft.src.BlockGrass.updateTick(BlockGrass.java:106)
at net.minecraft.src.World.tickBlocksAndAmbiance(World.java:3168)
at net.minecraft.src.World.tick(World.java:2869)
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1923)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:890)
at net.minecraft.client.Minecraft.run(Minecraft.java:798)
at java.lang.Thread.run(Thread.java:722)
--- END ERROR REPORT 4fc43627 ----------
You both seem to be having the same issue. Apparently it was fixed in 1.2.4 but obviously not. I can't reproduce this, so I don't know the exact cause. According to the wiki, it had to do with some issue with seeds and other things in the world generation. I seriously haven't been able to think of or find a way to fix this, sorry. Maybe try updating to 1.2.5 and see if it works?
“Computers are incredibly fast, accurate and stupid; humans are incredibly slow, inaccurate and brilliant; together they are powerful beyond imagination."
public class mod_Tutorial extends BaseMod
{
public static final Block TutorialBlock = new TutBlock(150, 0).setBlockName("TutBlock").setHardness(4F).setResistance(6F);
public static final Item TutorialItem = new Item(1000).setItemName("TutItem");
public void load()
{
ModLoader.registerBlock(TutorialBlock);
“Computers are incredibly fast, accurate and stupid; humans are incredibly slow, inaccurate and brilliant; together they are powerful beyond imagination."
Okay, so I have the customized code in my mod_Block, my BlockBlock, and my EntityTileBlock. Compiles perfectly, doesn't seem to do anything. Is there anything else I should be declaring?
One quick question. So, I exported my class files from my mcp folder to try it on another computer, then I deleted my mcp and got the new 1.2.5 update. How can I add the class files back in so I can see them in eclipse?
Okay, so I have the customized code in my mod_Block, my BlockBlock, and my EntityTileBlock. Compiles perfectly, doesn't seem to do anything. Is there anything else I should be declaring?
One quick question. So, I exported my class files from my mcp folder to try it on another computer, then I deleted my mcp and got the new 1.2.5 update. How can I add the class files back in so I can see them in eclipse?
Have you got backups of the .java files?
Rollback Post to RevisionRollBack
“Computers are incredibly fast, accurate and stupid; humans are incredibly slow, inaccurate and brilliant; together they are powerful beyond imagination."
You both seem to be having the same issue. Apparently it was fixed in 1.2.4 but obviously not. I can't reproduce this, so I don't know the exact cause. According to the wiki, it had to do with some issue with seeds and other things in the world generation. I seriously haven't been able to think of or find a way to fix this, sorry. Maybe try updating to 1.2.5 and see if it works?
o_o I was unaware the 125 pre release. Looks like there's an update called "Fixed world generation failing under certain circumstances". Sounds promising
package net.minecraft.src;
public class mod_Myblock extends BaseMod
{
public static final Block Myblock = new BlockMyblock(160, 0).setBlockName("blad").setHardness(500F).setResistance(500F);
public static int Myblock Bottom = ModLoader.addOverride("/terrain.png", "/myblockbottoms.png");
public static int MyblockTop = ModLoader.addOverride("/terrain.png", "/myblocktop.png");
public static int MyblockSides = ModLoader.addOverride("/terrain.png", "/myblocksides.png");
public void load()
{
ModLoader.registerBlock(Myblock);
ModLoader.addName(Myblock, "Myblock");
ModLoader.addRecipe(new ItemStack(Myblock, 1), new Object [] {"#", Character.valueOf('#'), Block.dirt});
ModLoader.registerTileEntity(TileEntityMyblock.class, "Myblock");
}
public String getVersion()
{
return "1.2.4";
}
}
BlockMyblock:
package net.minecraft.src;
import java.util.Random;
public class BlockMyblock extends Block
{
public BlockMyblock(int i, int j)
{
super(i, j, Material.grass);
}
public TileEntity getBlockEntity()
{
return new TileEntityMyblock();
}
public int idDropped(int i, Random random, int j)
{
return mod_Myblock.Myblock.blockID;
}
public int quantityDropped(Random random)
{
return 1;
}
public int getBlockTextureFromSideAndMetadata(int i, int j)
{
return getBlockTextureFromSide(i);
}
public int getBlockTextureFromSide(int i)
{
if (i == 0)
{
return mod_Myblock.MyblockBottom;
}
if (i == 1)
{
return mod_Myblock.MyblockTop;
}
else
{
return mod_Myblock.MyblockSides;
}
}
}
package net.minecraft.src;
public class mod_Myblock extends BaseMod
{
public static final Block Myblock = new BlockMyblock(160, 0).setBlockName("blad").setHardness(500F).setResistance(500F);
public static int Myblock Bottom = ModLoader.addOverride("/terrain.png", "/myblockbottoms.png");
public static int MyblockTop = ModLoader.addOverride("/terrain.png", "/myblocktop.png");
public static int MyblockSides = ModLoader.addOverride("/terrain.png", "/myblocksides.png");
public void load()
{
ModLoader.registerBlock(Myblock);
ModLoader.addName(Myblock, "Myblock");
ModLoader.addRecipe(new ItemStack(Myblock, 1), new Object [] {"#", Character.valueOf('#'), Block.dirt});
ModLoader.registerTileEntity(TileEntityMyblock.class, "Myblock");
}
public String getVersion()
{
return "1.2.4";
}
}
BlockMyblock:
package net.minecraft.src;
import java.util.Random;
public class BlockMyblock extends Block
{
public BlockMyblock(int i, int j)
{
super(i, j, Material.grass);
}
public TileEntity getBlockEntity()
{
return new TileEntityMyblock();
}
public int idDropped(int i, Random random, int j)
{
return mod_Myblock.Myblock.blockID;
}
public int quantityDropped(Random random)
{
return 1;
}
public int getBlockTextureFromSideAndMetadata(int i, int j)
{
return getBlockTextureFromSide(i);
}
public int getBlockTextureFromSide(int i)
{
if (i == 0)
{
return mod_Myblock.MyblockBottom;
}
if (i == 1)
{
return mod_Myblock.MyblockTop;
}
else
{
return mod_Myblock.MyblockSides;
}
}
}
“Computers are incredibly fast, accurate and stupid; humans are incredibly slow, inaccurate and brilliant; together they are powerful beyond imagination."
The actual name you defined for the mob that you created in its ModLoader.registerEntityID line?
Yes, but it is irrelevant because I have a system print-in to alert me if the loop is working. So it's either the loop isn't working OR something is wrong in creating the instances of TileEntityMyblock.
Do you know a place a could plant a system print-in where it would show when a block creates a copy of TileEntityMyblock in itself?
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
But i also have a question how do you make an entity spawn when you break something like how silverfish spawn when you break the blocks they're hiding as.
Look at BlockSilverfish.
together they are powerful beyond imagination."
package net.minecraft.src; import java.util.Random; public class BlockChain extends Block { protected BlockChain(int par1, int par2) { super(par1, par2, Material.iron); } /** * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been * cleared to be reused) */ public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) { int i = par1World.getBlockMetadata(par2, par3, par4); float f = 0.125F; if (i == 2) { setBlockBounds(0.0F, 0.0F, 1.0F - f, 1.0F, 1.0F, 1.0F); } if (i == 3) { setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, f); } if (i == 4) { setBlockBounds(1.0F - f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); } if (i == 5) { setBlockBounds(0.0F, 0.0F, 0.0F, f, 1.0F, 1.0F); } return super.getCollisionBoundingBoxFromPool(par1World, par2, par3, par4); } /** * Returns the bounding box of the wired rectangular prism to render. */ public AxisAlignedBB getSelectedBoundingBoxFromPool(World par1World, int par2, int par3, int par4) { int i = par1World.getBlockMetadata(par2, par3, par4); float f = 0.125F; if (i == 2) { setBlockBounds(0.0F, 0.0F, 1.0F - f, 1.0F, 1.0F, 1.0F); } if (i == 3) { setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, f); } if (i == 4) { setBlockBounds(1.0F - f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); } if (i == 5) { setBlockBounds(0.0F, 0.0F, 0.0F, f, 1.0F, 1.0F); } return super.getSelectedBoundingBoxFromPool(par1World, par2, par3, par4); } /** * Is this block (a) opaque and (B) a full 1m cube? This determines whether or not to render the shared face of two * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. */ public boolean isOpaqueCube() { return false; } /** * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) */ public boolean renderAsNormalBlock() { return false; } /** * The type of render function that is called for this block */ public int getRenderType() { return 8; } /** * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z */ public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4) { if (par1World.isBlockNormalCube(par2 - 1, par3, par4)) { return true; } if (par1World.isBlockNormalCube(par2 + 1, par3, par4)) { return true; } if (par1World.isBlockNormalCube(par2, par3, par4 - 1)) { return true; } return par1World.isBlockNormalCube(par2, par3, par4 + 1); } /** * Called when a block is placed using an item. Used often for taking the facing and figuring out how to position * the item. Args: x, y, z, facing */ public void onBlockPlaced(World par1World, int par2, int par3, int par4, int par5) { int i = par1World.getBlockMetadata(par2, par3, par4); if ((i == 0 || par5 == 2) && par1World.isBlockNormalCube(par2, par3, par4 + 1)) { i = 2; } if ((i == 0 || par5 == 3) && par1World.isBlockNormalCube(par2, par3, par4 - 1)) { i = 3; } if ((i == 0 || par5 == 4) && par1World.isBlockNormalCube(par2 + 1, par3, par4)) { i = 4; } if ((i == 0 || par5 == 5) && par1World.isBlockNormalCube(par2 - 1, par3, par4)) { i = 5; } par1World.setBlockMetadataWithNotify(par2, par3, par4, i); } /** * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are * their own) Args: x, y, z, neighbor blockID */ public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) { int i = par1World.getBlockMetadata(par2, par3, par4); boolean flag = false; if (i == 2 && par1World.isBlockNormalCube(par2, par3, par4 + 1)) { flag = true; } if (i == 3 && par1World.isBlockNormalCube(par2, par3, par4 - 1)) { flag = true; } if (i == 4 && par1World.isBlockNormalCube(par2 + 1, par3, par4)) { flag = true; } if (i == 5 && par1World.isBlockNormalCube(par2 - 1, par3, par4)) { flag = true; } if (!flag) { dropBlockAsItem(par1World, par2, par3, par4, i, 0); par1World.setBlockWithNotify(par2, par3, par4, 0); } super.onNeighborBlockChange(par1World, par2, par3, par4, par5); } /** * Returns the quantity of items to drop on block destruction. */ public int quantityDropped(Random par1Random) { return 1; } }Ladders and vines work because there is a bit of code in EntityPlayer for them.
together they are powerful beyond imagination."
complex CustomNPC I get this error!
ModLoader 1.2.4
mod_HumanNPC 1.2.4
mod_MilkMan 1.2.4
mod_TurkeyCooked 1.2.4
Minecraft has crashed!
----------------------
Minecraft has stopped running because it encountered a problem.
--- BEGIN ERROR REPORT 6b2bd628 --------
Generated 4/2/12 10:28 AM
Minecraft: Minecraft 1.2.4
OS: Windows 7 (x86) version 6.1
Java: 1.7.0_03, Oracle Corporation
VM: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation
LWJGL: 2.4.2
OpenGL: ATI Radeon HD 3200 Graphics version 2.1.8794, ATI Technologies Inc.
java.lang.IllegalArgumentException: n must be positive
at java.util.Random.nextInt(Unknown Source)
at net.minecraft.src.SpawnerAnimals.performWorldGenSpawning(SpawnerAnimals.java:252)
at net.minecraft.src.ChunkProviderGenerate.populate(ChunkProviderGenerate.java:512)
at net.minecraft.src.ChunkProvider.populate(ChunkProvider.java:195)
at net.minecraft.src.Chunk.populateChunk(Chunk.java:1150)
at net.minecraft.src.ChunkProvider.loadChunk(ChunkProvider.java:106)
at net.minecraft.src.ChunkProvider.provideChunk(ChunkProvider.java:119)
at net.minecraft.src.World.getChunkFromChunkCoords(World.java:651)
at net.minecraft.src.World.getBlockId(World.java:544)
at net.minecraft.client.Minecraft.preloadWorld(Minecraft.java:2278)
at net.minecraft.client.Minecraft.changeWorld(Minecraft.java:2165)
at net.minecraft.client.Minecraft.changeWorld2(Minecraft.java:2112)
at net.minecraft.client.Minecraft.startWorld(Minecraft.java:1998)
at net.minecraft.src.GuiSelectWorld.selectWorld(GuiSelectWorld.java:204)
at net.minecraft.src.GuiSelectWorld.actionPerformed(GuiSelectWorld.java:153)
at net.minecraft.src.GuiScreen.mouseClicked(GuiScreen.java:108)
at net.minecraft.src.GuiScreen.handleMouseInput(GuiScreen.java:175)
at net.minecraft.src.GuiScreen.handleInput(GuiScreen.java:161)
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1638)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:890)
at net.minecraft.client.Minecraft.run(Minecraft.java:798)
at java.lang.Thread.run(Unknown Source)
--- END ERROR REPORT dc636559 ----------
Please help if you know whats wrong! My mod really needs this to work!
Thanks!!!
Sadly I have got some errors too... take a look:
package net.minecraft.src; public class mod_NightsMod extends BaseMod{ public static final Block Coalblock = new BlockCoal(160, 0).setBlockName("Coalblock").setHardness(3F).setResistance(4F); public void load(){ Coalblock.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/NightsMod/coalblock.png"); ModLoader.registerBlock(Coalblock); ModLoader.addName(Coalbloc, "Coal Block"); ModLoader.addRecipe(new ItemStack(Coalblock, 1), new Object[] { "#", Character.valueOf('#'), Item.coal }); } public String getVersion(){ return "1.2.4"; } }package net.minecraft.src; import java.util.Random; public class BlockCoal extends Block{ public BlockCoal(int i, int j){ super(i, j, Material.rock); } public int idDropped(int i, Random random, int j){ return 283; //Coals id } public int quantityDroppeD(Random random){ return 4; //I plan ot use addShapelessRecipe later, //so that you need 4 coal to make the block //similar to an iron block. }Error Report:
ModLoader 1.2.4
mod_Nightsmod 1.2.4
Minecraft has crashed!
----------------------
Minecraft has stopped running because it encountered a problem.
--- BEGIN ERROR REPORT 9b7d0e3d --------
Generated 4/2/12 1:25 PM
Minecraft: Minecraft 1.2.4
OS: Windows XP (x86) version 5.1
Java: 1.7.0_03, Oracle Corporation
VM: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation
LWJGL: 2.4.2
OpenGL: Intel 965/963 Graphics Media Accelerator version 1.5.0 - Build 6.14.10.4859, Intel
java.lang.RuntimeException: Already decorating!!
at net.minecraft.src.BiomeDecorator.decorate(BiomeDecorator.java:177)
at net.minecraft.src.BiomeGenBase.decorate(BiomeGenBase.java:340)
at net.minecraft.src.BiomeGenJungle.decorate(BiomeGenJungle.java:57)
at net.minecraft.src.ChunkProviderGenerate.populate(ChunkProviderGenerate.java:511)
at net.minecraft.src.ChunkProvider.populate(ChunkProvider.java:195)
at net.minecraft.src.Chunk.populateChunk(Chunk.java:1150)
at net.minecraft.src.ChunkProvider.loadChunk(ChunkProvider.java:106)
at net.minecraft.src.ChunkProvider.provideChunk(ChunkProvider.java:119)
at net.minecraft.src.World.getChunkFromChunkCoords(World.java:651)
at net.minecraft.src.World.getChunkFromBlockCoords(World.java:643)
at net.minecraft.src.WorldGenerator.setBlockAndMetadata(WorldGenerator.java:46)
at net.minecraft.src.WorldGenerator.func_50073_a(WorldGenerator.java:34)
at net.minecraft.src.WorldGenTrees.generate(WorldGenTrees.java:83)
at net.minecraft.src.BiomeDecorator.decorate(BiomeDecorator.java:233)
at net.minecraft.src.BiomeDecorator.decorate(BiomeDecorator.java:185)
at net.minecraft.src.BiomeGenBase.decorate(BiomeGenBase.java:340)
at net.minecraft.src.BiomeGenJungle.decorate(BiomeGenJungle.java:57)
at net.minecraft.src.ChunkProviderGenerate.populate(ChunkProviderGenerate.java:511)
at net.minecraft.src.ChunkProvider.populate(ChunkProvider.java:195)
at net.minecraft.src.Chunk.populateChunk(Chunk.java:1150)
at net.minecraft.src.ChunkProvider.loadChunk(ChunkProvider.java:106)
at net.minecraft.src.ChunkProvider.provideChunk(ChunkProvider.java:119)
at net.minecraft.src.World.getChunkFromChunkCoords(World.java:651)
at net.minecraft.src.World.getBlockId(World.java:544)
at net.minecraft.client.Minecraft.preloadWorld(Minecraft.java:2278)
at net.minecraft.client.Minecraft.changeWorld(Minecraft.java:2165)
at net.minecraft.client.Minecraft.changeWorld2(Minecraft.java:2112)
at net.minecraft.client.Minecraft.startWorld(Minecraft.java:1992)
at net.minecraft.src.GuiCreateWorld.actionPerformed(GuiCreateWorld.java:217)
at net.minecraft.src.GuiScreen.mouseClicked(GuiScreen.java:108)
at net.minecraft.src.GuiCreateWorld.mouseClicked(GuiCreateWorld.java:327)
at net.minecraft.src.GuiScreen.handleMouseInput(GuiScreen.java:175)
at net.minecraft.src.GuiScreen.handleInput(GuiScreen.java:161)
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1638)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:890)
at net.minecraft.client.Minecraft.run(Minecraft.java:798)
at java.lang.Thread.run(Unknown Source)
--- END ERROR REPORT 64c5278f ----------
This error occurs at the end of the world generation process.
Any ideas?
Edit: Fixed Spoiler/Code Tag issue...
Please post in Mod Development. This isn't just a thread to ask questions in that aren't related to the tutorials.
Please post in Mod Development. This isn't just a thread to ask questions in that aren't related to the tutorials.
Post your code please. It looks like something to do with spawning though.
together they are powerful beyond imagination."
You need to use MinecraftForge. Don't ask me how to use it because I have no idea. There are some tutorials floating around here somewhere for it.
You both seem to be having the same issue. Apparently it was fixed in 1.2.4 but obviously not. I can't reproduce this, so I don't know the exact cause. According to the wiki, it had to do with some issue with seeds and other things in the world generation. I seriously haven't been able to think of or find a way to fix this, sorry. Maybe try updating to 1.2.5 and see if it works?
together they are powerful beyond imagination."
here is my code:
package net.minecraft.src;
import java.util.Random;
public class mod_Tutorial extends BaseMod
{
public static final Block TutorialBlock = new TutBlock(150, 0).setBlockName("TutBlock").setHardness(4F).setResistance(6F);
public static final Item TutorialItem = new Item(1000).setItemName("TutItem");
public void load()
{
ModLoader.registerBlock(TutorialBlock);
ModLoader.addName(TutorialBlock, "cool block");
ModLoader.addName(TutorialItem, "cool Item");
TutorialBlock.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/mods/Tutorial Block.png");
TutorialItem.iconIndex = ModLoader.addOverride("/gui/items.png", "/mods/Platnum.png");
ModLoader.addSmelting(mod_Tutorial.TutorialBlock.blockID, new ItemStack(TutorialItem, 1));
}
public void genertesurface(World world, Random rand, int baseX, int baseZ)
{
//Tutorial Block
for(int l = 0; l<50; l++)
{
int Xcoord = baseX +rand.nextInt(16);
int Ycoord = rand.nextInt(64);
int Zcoord = baseZ +rand.nextInt(16);
(new WorldGenMinable(TutorialBlock.blockID, 15)).generate(world, rand, Xcoord, Ycoord, Zcoord);
}
//end Tutorial Block
}
public String getVersion()
{
return"1.2.4";
}
}
if any one could help me i would be gratefull
needs to be
together they are powerful beyond imagination."
Can you post your code please. All 3 classes.
Have you got backups of the .java files?
together they are powerful beyond imagination."
o_o I was unaware the 125 pre release. Looks like there's an update called "Fixed world generation failing under certain circumstances". Sounds promising
package net.minecraft.src; public class mod_Myblock extends BaseMod { public static final Block Myblock = new BlockMyblock(160, 0).setBlockName("blad").setHardness(500F).setResistance(500F); public static int Myblock Bottom = ModLoader.addOverride("/terrain.png", "/myblockbottoms.png"); public static int MyblockTop = ModLoader.addOverride("/terrain.png", "/myblocktop.png"); public static int MyblockSides = ModLoader.addOverride("/terrain.png", "/myblocksides.png"); public void load() { ModLoader.registerBlock(Myblock); ModLoader.addName(Myblock, "Myblock"); ModLoader.addRecipe(new ItemStack(Myblock, 1), new Object [] {"#", Character.valueOf('#'), Block.dirt}); ModLoader.registerTileEntity(TileEntityMyblock.class, "Myblock"); } public String getVersion() { return "1.2.4"; } }BlockMyblock:
package net.minecraft.src; import java.util.Random; public class BlockMyblock extends Block { public BlockMyblock(int i, int j) { super(i, j, Material.grass); } public TileEntity getBlockEntity() { return new TileEntityMyblock(); } public int idDropped(int i, Random random, int j) { return mod_Myblock.Myblock.blockID; } public int quantityDropped(Random random) { return 1; } public int getBlockTextureFromSideAndMetadata(int i, int j) { return getBlockTextureFromSide(i); } public int getBlockTextureFromSide(int i) { if (i == 0) { return mod_Myblock.MyblockBottom; } if (i == 1) { return mod_Myblock.MyblockTop; } else { return mod_Myblock.MyblockSides; } } }TileEntityMyblock:
package net.minecraft.src; import java.util.List; import java.util.Random; public class TileEntityMyblock extends TileEntity { public int number = 0; public void updateEntity() { System.out.println("Is looping!!!"); number++; if(number == 4) { EntityLiving entityliving = (EntityLiving)EntityList.createEntityByName("TheworkingentityImade", worldObj); double d3 = (double)xCoord + (worldObj.rand.nextDouble() - worldObj.rand.nextDouble()) * 4D; double d4 = (yCoord + worldObj.rand.nextInt(3)) - 1; double d5 = (double)zCoord + (worldObj.rand.nextDouble() - worldObj.rand.nextDouble()) * 4D; entityliving.setLocationAndAngles(d3, d4, d5, worldObj.rand.nextFloat() * 360F, 0.0F); worldObj.spawnEntityInWorld(entityliving); number = 0; } } }Is
The actual name you defined for the mob that you created in its ModLoader.registerEntityID line?
I mean the actual unobfuscated code in.java format, and not .class
Thanks :). I really appreciate it.
together they are powerful beyond imagination."
Yes, but it is irrelevant because I have a system print-in to alert me if the loop is working. So it's either the loop isn't working OR something is wrong in creating the instances of TileEntityMyblock.
Do you know a place a could plant a system print-in where it would show when a block creates a copy of TileEntityMyblock in itself?