- Mr_Crayfish
- Curse Premium
-
Member for 12 years, 7 months, and 28 days
Last active Thu, Apr, 27 2017 07:17:06
- 173 Followers
- 1,325 Total Posts
- 787 Thanks
-
1
Nephros posted a message on Skyland! (turning into Sky Town!)Nice job.Posted in: Screenshots -
1
MrDeathKills posted a message on Skyland! (turning into Sky Town!)dang thats good.Posted in: Screenshots -
1
DS3R posted a message on Skyland! (turning into Sky Town!)Awesome work! :wink.gif:Posted in: Screenshots -
2
DinosaurXenon posted a message on Skyland! (turning into Sky Town!)Woah you did that all? How long did that take you?Posted in: Screenshots -
33
Strengthowns posted a message on [ModLoader][1.8.1] Strength's Tutorials/Help (28/11/11) *Generation*Posted in: TutorialsAdvanced Block
Booster Block
1. Add this to your BlockNamehere:
slipperiness = 1.5F;
so it would fit in here:
public BlockNamehere(int i, int j) { super(i, j, Material.ground); slipperiness = 1.5F; }
Bouncy Block
1. Add this to your BlockNamehere:
public void onEntityWalking(World world, int x, int y, int z, Entity entity) { entity.motionY += 2.0; }
so it would go here:
public int idDropped(int i, Random random) { return mod_Namehere.Namehere.blockID; } public void onEntityWalking(World world, int x, int y, int z, Entity entity) { entity.motionY += 2.0; } public int quantityDropped(Random random) { return 1; } }
Change the 2 to whatever you want, 5 will shoot you sky high!
Damage on contact1. Put this in your BlockNamehere:
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int i, int j, int k) { float f = 0.0625F; return AxisAlignedBB.getBoundingBoxFromPool((float)i + f, j, (float)k + f, (float)(i + 1) - f, (float)(j + 1) - f, (float)(k + 1) - f); } public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int i, int j, int k) { float f = 0.0625F; return AxisAlignedBB.getBoundingBoxFromPool((float)i + f, j, (float)k + f, (float)(i + 1) - f, j + 1, (float)(k + 1) - f); } public void onEntityCollidedWithBlock(World world, int i, int j, int k, Entity entity) { entity.attackEntityFrom(null, 4); }
So it would fit in here:
public int quantityDropped(Random random) { return 1; } public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int i, int j, int k) { float f = 0.0625F; return AxisAlignedBB.getBoundingBoxFromPool((float)i + f, j, (float)k + f, (float)(i + 1) - f, (float)(j + 1) - f, (float)(k + 1) - f); } public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int i, int j, int k) { float f = 0.0625F; return AxisAlignedBB.getBoundingBoxFromPool((float)i + f, j, (float)k + f, (float)(i + 1) - f, j + 1, (float)(k + 1) - f); } public void onEntityCollidedWithBlock(World world, int i, int j, int k, Entity entity) { entity.attackEntityFrom(DamageSource.causeThrownDamage(entity, entity), 4); } }
2. The 4 at the bottom is how many half-hearts of damage it does when you walk into it.
3. If you want it to heal you on contact, then change it to something like this:
entity.attackEntityFrom(null, -4);
4. The only downside to the heal block is the player still makes the hurt sounds...
Redstone Activation
1. All you do differently in the mod_* file is in the static the block has "false" in it. That is what it's normal state is.
mod_Nameherepackage net.minecraft.src; public class mod_Namehere extends BaseMod { public static Block Namehere; public mod_Namehere() { ModLoader.AddName(Namehere, "Namehere"); ModLoader.RegisterBlock(Namehere); } public String Version() { return "1.8.1"; } static { Namehere = (new BlockNamehere(233, ModLoader.addOverride("/terrain.png", "/Namehere.png"), false)).setHardness(0.2F).setBlockName("Namehere"); } }
BlockNameherepackage net.minecraft.src; import java.util.Random; public class BlockNamehere extends Block { public BlockNamehere(int i, int j, boolean flag) { super(i, Material.ground); blockIndexInTexture = j; } public int idDropped(int i, Random random) { return mod_Namehere.Namehere.blockID; } public void onNeighborBlockChange(World world, int i, int j, int k, int l) { if(world.isBlockIndirectlyGettingPowered(i, j, k)) { world.setBlockWithNotify(i, j + 1, k, Block.fire.blockID); } else { world.setBlockWithNotify(i, j + 1, k, 0); } } }
1. Everything is the same as normal up until the "onNeighborBlockChange" method.
2. Basically what it's saying it "If I'm getting powered, put a block of fire above me and if not, then put nothing there."
3. Refer to the "Structure Maker" tutorial for more help.
Heal on contact
1. Add this to your BlockNamehere file:
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int i, int j, int k) { float f = 0.0625F; return AxisAlignedBB.getBoundingBoxFromPool((float)i + f, j, (float)k + f, (float)(i + 1) - f, (float)(j + 1) - f, (float)(k + 1) - f); } public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int i, int j, int k) { float f = 0.0625F; return AxisAlignedBB.getBoundingBoxFromPool((float)i + f, j, (float)k + f, (float)(i + 1) - f, j + 1, (float)(k + 1) - f); } public void onEntityCollidedWithBlock(World world, int i, int j, int k, Entity entity) { if(ModLoader.getMinecraftInstance().thePlayer.health < 20) { ModLoader.getMinecraftInstance().thePlayer.heal(4); } }
2. Change the 4 at the bottom to how many half hearts you want it to heal you.
3. NOTE: It heals you very fast!
Structure Makermod_Nameherepackage net.minecraft.src; public class mod_Namehere extends BaseMod { public static final Block Namehere; public mod_Namehere() { ModLoader.AddName(Namehere, "Namehere Block"); ModLoader.RegisterBlock(Namehere); } public String Version() { return "1.8.1"; } static { Namehere = (new BlockNamehere(181, ModLoader.addOverride("/terrain.png", "/Namehere.png"))).setHardness(0.0F).setBlockName("Namehere"); } }
BlockNameherepackage net.minecraft.src; public class BlockNamehere extends Block { private World worldObj; protected BlockNamehere(int i, int j) { super(i, j, Material.ground); } public void onBlockClicked(World world, int i, int j, int k, EntityPlayer entityplayer) { world.setBlockWithNotify(i, j + 1, k, Block.dirt.blockID); world.setBlockWithNotify(i, j + 2, k, Block.dirt.blockID); world.setBlockWithNotify(i, j + 3, k, Block.dirt.blockID); world.setBlockWithNotify(i, j + 4, k, Block.dirt.blockID); world.setBlockWithNotify(i, j + 5, k, Block.dirt.blockID); world.setBlockWithNotify(i, j + 6, k, Block.dirt.blockID); world.setBlockWithNotify(i, j + 7, k, Block.dirt.blockID); world.setBlockWithNotify(i, j + 8, k, Block.dirt.blockID); } }
Help: mod_Namehere
1. Note: The way the code is done in this may look different but it makes things
Help: BlockNamehere
1. Everything is same as normal except for the "onBlockClicked" method.
2. In the "world.setBlockWithNotify" statements, the i, j, k letters stand for the coordinates x, y, z. After that it is saying what block it will put at those coordinates.
3. Optionally, if you are using the same block over and over and want to make it easier to write, you could set an integer like this:public void onBlockClicked(World world, int i, int j, int k, EntityPlayer entityplayer) { int block = Block.dirt.blockID; world.setBlockWithNotify(i, j + 1, k, block); world.setBlockWithNotify(i, j + 2, k, block); world.setBlockWithNotify(i, j + 3, k, block); world.setBlockWithNotify(i, j + 4, k, block); world.setBlockWithNotify(i, j + 5, k, block); world.setBlockWithNotify(i, j + 6, k, block); world.setBlockWithNotify(i, j + 7, k, block); world.setBlockWithNotify(i, j + 8, k, block); }
Then you would only have to write "block" to make it use dirt.
There you have it, a nice easy way to make a house or any structure you want!
-
30
Strengthowns posted a message on [ModLoader][1.8.1] Strength's Tutorials/Help (28/11/11) *Generation*Posted in: TutorialsSugarcane-like Plant
mod_Nameherepackage net.minecraft.src; import java.util.Random; public class mod_Namehere extends BaseMod { public mod_Namehere() { ModLoader.RegisterBlock(Namehere); ModLoader.AddName(Namehere, "Namehere"); ModLoader.AddRecipe(new ItemStack(Item.redstone, 3), new Object[] { "#", Character.valueOf('#'), Namehere }); } public void GenerateSurface(World world, Random random, int i, int j) { if(random.nextInt(20) == 0) { for(int k = 0; k < 16; k++) { for(int l = 0; l < 16; l++) { int i1 = random.nextInt(200); if(world.getBlockId(i + l, i1, j + k) != Block.grass.blockID || !world.isAirBlock(i + l, i1 + 1, j + k)) { continue; } int j1 = random.nextInt(2); if(j1 == 0) { world.setBlock(i + l, i1 + 1, j + k, Namehere.blockID); } if(j1 == 1) { world.setBlock(i + l, i1 + 1, j + k, Namehere.blockID); world.setBlock(i + l, i1 + 2, j + k, Namehere.blockID); } if(j1 == 2) { world.setBlock(i + l, i1 + 1, j + k, Namehere.blockID); world.setBlock(i + l, i1 + 2, j + k, Namehere.blockID); world.setBlock(i + l, i1 + 3, j + k, Namehere.blockID); } if(j1 == 3) { world.setBlock(i + l, i1 + 1, j + k, Namehere.blockID); world.setBlock(i + l, i1 + 2, j + k, Namehere.blockID); world.setBlock(i + l, i1 + 3, j + k, Namehere.blockID); world.setBlock(i + l, i1 + 4, j + k, Namehere.blockID); } } } } } public String Version() { return "1.7.3"; } public static Block Namehere = (new BlockNamehere(124, ModLoader.addOverride("/terrain.png", "/Namehere.png"))).setHardness(0.0F).setResistance(0.0F).setBlockName("Namehere"); }
BlockNameherepackage net.minecraft.src; import java.util.Random; public class BlockNamehere extends Block { protected BlockNamehere(int i, int j) { super(i, Material.plants); blockIndexInTexture = j; float f = 0.375F; setBlockBounds(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, 1.0F, 0.5F + f); setTickOnLoad(true); } public void updateTick(World world, int i, int j, int k, Random random) { if(world.isAirBlock(i, j + 1, k)) { int l; for(l = 1; world.getBlockId(i, j - l, k) == blockID; l++) { } if(l < 3) { int i1 = world.getBlockMetadata(i, j, k); if(i1 == 15) { world.setBlockWithNotify(i, j + 1, k, blockID); world.setBlockMetadataWithNotify(i, j, k, 0); } else { world.setBlockMetadataWithNotify(i, j, k, i1 + 1); } } } } public boolean canPlaceBlockAt(World world, int i, int j, int k) { int l = world.getBlockId(i, j - 1, k); if(l == blockID) { return true; } return l == Block.grass.blockID || l == Block.dirt.blockID; } public void onNeighborBlockChange(World world, int i, int j, int k, int l) { checkBlockCoordValid(world, i, j, k); } protected final void checkBlockCoordValid(World world, int i, int j, int k) { if(!canBlockStay(world, i, j, k)) { dropBlockAsItem(world, i, j, k, world.getBlockMetadata(i, j, k)); world.setBlockWithNotify(i, j, k, 0); } } public boolean canBlockStay(World world, int i, int j, int k) { return canPlaceBlockAt(world, i, j, k); } public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int i, int j, int k) { return null; } public int idDropped(int i, Random random) { return mod_Namehere.Namehere.blockID; } public boolean isOpaqueCube() { return false; } public boolean renderAsNormalBlock() { return false; } public int getRenderType() { return 1; } }
Help: mod_Namehere
1. Where it has all of this stuff, (4 parts to it)if(j1 == 1) { world.setBlock(i + l, i1 + 1, j + k, Namehere.blockID); world.setBlock(i + l, i1 + 2, j + k, Namehere.blockID); }
You can copy paste more onto the end to make it grow to a bigger height. Of course, you need to change some numbers around. Just look for the pattern.
Help: BlockNamehere
1. At this bit:public boolean canPlaceBlockAt(World world, int i, int j, int k) { int l = world.getBlockId(i, j - 1, k); if(l == blockID) { return true; } return l == Block.grass.blockID || l == Block.dirt.blockID;
You can change it or add more blocks to what you want it to be able to be placed on.
2. Your sugarcane-like plant will spawn on grass/dirt but for some reason it won't be beside water.
-
30
Strengthowns posted a message on [ModLoader][1.8.1] Strength's Tutorials/Help (28/11/11) *Generation*Posted in: TutorialsArmor
mod_Nameherepackage net.minecraft.src; import net.minecraft.client.Minecraft; public class mod_Namehere extends BaseMod { public mod_Namehere() { NamehereHelmet.iconIndex = ModLoader.addOverride("/gui/items.png", "/Nameherehelmet.png"); ModLoader.AddName(NamehereHelmet, "Namehere Helmet"); ModLoader.AddRecipe(new ItemStack(NamehereHelmet, 1), new Object[] { "rrr", "r r", " ", Character.valueOf('r'), Item.redstone }); NamehereBody.iconIndex = ModLoader.addOverride("/gui/items.png", "/Nameherebody.png"); ModLoader.AddName(NamehereBody, "Namehere Chestplate"); ModLoader.AddRecipe(new ItemStack(NamehereBody, 1), new Object[] { "r r", "rrr", "rrr", Character.valueOf('r'), Item.redstone }); NamehereLegs.iconIndex = ModLoader.addOverride("/gui/items.png", "/Nameherelegs.png"); ModLoader.AddName(NamehereLegs, "Namehere Leggings"); ModLoader.AddRecipe(new ItemStack(NamehereLegs, 1), new Object[] { "rrr", "r r", "r r", Character.valueOf('r'), Item.redstone }); NamehereBoots.iconIndex = ModLoader.addOverride("/gui/items.png", "/Namehereboots.png"); ModLoader.AddName(NamehereBoots, "Namehere Boots"); ModLoader.AddRecipe(new ItemStack(NamehereBoots, 1), new Object[] { " ", "r r", "r r", Character.valueOf('r'), Item.redstone }); } public String Version() { return "1.7.3"; } public static Item NamehereHelmet = (new ItemArmor(2612, 3, ModLoader.AddArmor("NamehereArmor"), 0)).setItemName("NamehereHelmet"); public static Item NamehereBody = (new ItemArmor(2613, 3, ModLoader.AddArmor("NamehereArmor"), 1)).setItemName("NamehereBody"); public static Item NamehereLegs = (new ItemArmor(2614, 3, ModLoader.AddArmor("NamehereArmor"), 2)).setItemName("NamehereLegs"); public static Item NamehereBoots = (new ItemArmor(2615, 3, ModLoader.AddArmor("NamehereArmor"), 3)).setItemName("NamehereBoots"); }
Help: mod_Namehere
1. You should have read the other tutorials and know it all up to the bottom part.
2. The 261? after new ItemArmor is the ID.
3. After that, the 3 is the material I'm pretty sure.
4. The 0, 1, 2, 3 is armor types. Leave them as they are.
5. After modloader.addarmor, the NamehereArmor is what your
???_1 and ???_2 are called.
6. It reads those files from the armor file in the jar.
7. That's it! Oh, and don't forget to make those armor textures!
Armor Effects
0. First, put this under all of your recipes etc.
ModLoader.SetInGameHook(this, true, false);
1. Then you can add this to your mod_Namehere file:
public boolean OnTickInGame(Minecraft minecraft) { ItemStack boots = minecraft.thePlayer.inventory.armorInventory[0]; ItemStack legs = minecraft.thePlayer.inventory.armorInventory[1]; ItemStack chest = minecraft.thePlayer.inventory.armorInventory[2]; ItemStack helm = minecraft.thePlayer.inventory.armorInventory[3]; if(boots == null || legs == null || chest == null || helm == null) { return true; } if(boots.itemID == NamehereBoots.shiftedIndex && legs.itemID == NamehereLegs.shiftedIndex && chest.itemID == NamehereBody.shiftedIndex && helm.itemID == NamehereHelmet.shiftedIndex) { minecraft.thePlayer.air = minecraft.thePlayer.maxAir; } return true; }
2. So it would fit in like this:
ModLoader.AddRecipe(new ItemStack(NamehereBoots, 1), new Object[] { " ", "r r", "r r", Character.valueOf('r'), Item.redstone }); ModLoader.SetInGameHook(this, true, false); } public boolean OnTickInGame(Minecraft minecraft) { ItemStack boots = minecraft.thePlayer.inventory.armorInventory[0]; ItemStack legs = minecraft.thePlayer.inventory.armorInventory[1]; ItemStack chest = minecraft.thePlayer.inventory.armorInventory[2]; ItemStack helm = minecraft.thePlayer.inventory.armorInventory[3]; if(boots == null || legs == null || chest == null || helm == null) { return true; } if(boots.itemID == NamehereBoots.shiftedIndex && legs.itemID == NamehereLegs.shiftedIndex && chest.itemID == NamehereBody.shiftedIndex && helm.itemID == NamehereHelmet.shiftedIndex) { minecraft.thePlayer.air = minecraft.thePlayer.maxAir; } return true; }
3. This means that when your armor set is worn, you will have infinite breath.
4. To have another armor effect for different armor, you can make it something like this:
public boolean OnTickInGame(Minecraft minecraft) { ItemStack boots = minecraft.thePlayer.inventory.armorInventory[0]; ItemStack legs = minecraft.thePlayer.inventory.armorInventory[1]; ItemStack chest = minecraft.thePlayer.inventory.armorInventory[2]; ItemStack helm = minecraft.thePlayer.inventory.armorInventory[3]; if(boots == null || legs == null || chest == null || helm == null) { return true; } if(boots.itemID == NamehereBoots.shiftedIndex && legs.itemID == NamehereLegs.shiftedIndex && chest.itemID == NamehereBody.shiftedIndex && helm.itemID == NamehereHelmet.shiftedIndex) { minecraft.thePlayer.air = minecraft.thePlayer.maxAir; } if(boots.itemID == Namehere1Boots.shiftedIndex && legs.itemID == Namehere1Legs.shiftedIndex && chest.itemID == Namehere1Body.shiftedIndex && helm.itemID == Namehere1Helmet.shiftedIndex) { minecraft.thePlayer.isImmuneToFire = true; } return true; }
That's it! Enjoy your new armor with effects!
Creating Overlays
mod_Nameherepackage net.minecraft.src; import net.minecraft.client.Minecraft; import org.lwjgl.opengl.GL11; public class mod_Namehere extends BaseMod { public String Version() { return "1.7.3"; } public mod_Namehere() { NamehereHelmet.iconIndex = ModLoader.addOverride("/gui/items.png", "/Nameherehelmet.png"); ModLoader.AddName(NamehereHelmet, "Namehere Helmet"); ModLoader.AddRecipe(new ItemStack(NamehereHelmet, 1), new Object[] { "rrr", "r r", " ", Character.valueOf('r'), Item.redstone }); ModLoader.SetInGameHook(this, true, false); } public boolean OnTickInGame(Minecraft minecraft) { if(minecraft == null) { minecraft = ModLoader.getMinecraftInstance(); } if(minecraft.thePlayer == null || minecraft.theWorld == null) { return false; } if(minecraft != null && !minecraft.gameSettings.thirdPersonView && minecraft.thePlayer.inventory.armorItemInSlot(3) != null && minecraft.thePlayer.inventory.armorItemInSlot(3).itemID != Block.pumpkin.blockID && minecraft.thePlayer.inventory.armorItemInSlot(3).itemID == NamehereHelmet.shiftedIndex) { overlay(minecraft, "%blur%/Myfolder/Namehereoverlay.png"); } return true; } public void overlay(Minecraft minecraft, String s) { ScaledResolution scaledresolution = new ScaledResolution(minecraft.gameSettings, minecraft.displayWidth, minecraft.displayHeight); int i = scaledresolution.getScaledWidth(); int j = scaledresolution.getScaledHeight(); GL11.glEnable(3042 /*GL_BLEND*/); GL11.glDisable(2929 /*GL_DEPTH_TEST*/); GL11.glDepthMask(false); GL11.glBlendFunc(770, 771); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glDisable(3008 /*GL_ALPHA_TEST*/); GL11.glBindTexture(3553 /*GL_TEXTURE_2D*/, minecraft.renderEngine.getTexture(s)); Tessellator tessellator = Tessellator.instance; tessellator.startDrawingQuads(); tessellator.addVertexWithUV(0.0D, j, -90D, 0.0D, 1.0D); tessellator.addVertexWithUV(i, j, -90D, 1.0D, 1.0D); tessellator.addVertexWithUV(i, 0.0D, -90D, 1.0D, 0.0D); tessellator.addVertexWithUV(0.0D, 0.0D, -90D, 0.0D, 0.0D); tessellator.draw(); GL11.glDepthMask(true); GL11.glEnable(2929 /*GL_DEPTH_TEST*/); GL11.glEnable(3008 /*GL_ALPHA_TEST*/); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glDisable(3042 /*GL_BLEND*/); } public static Item NamehereHelmet = (new ItemArmor(5001, 3, ModLoader.AddArmor("Namehere"), 0)).setItemName("NamehereHelmet"); }
Help: mod_Namehere
1. You know everything up till this bit:
if(minecraft != null && !minecraft.gameSettings.thirdPersonView && minecraft.thePlayer.inventory.armorItemInSlot(3) != null && minecraft.thePlayer.inventory.armorItemInSlot(3).itemID != Block.pumpkin.blockID && minecraft.thePlayer.inventory.armorItemInSlot(3).itemID == NamehereHelmet.shiftedIndex)
Change the NamehereHelmet at the end of it to what you want the overlay to be used for.
2. Just underneath that is this:
overlay(minecraft, "%blur%/Myfolder/Namehereoverlay.png");
Leave that %blur% at the front of it, and the Namehereoverlay is what it uses when you wear the helmet.
3. Leave the other stuff as is.
4. The overlay's dimensions that you make should be 512x512.
-
121
Arblyoko posted a message on "Better Books" Suggestion (Making Books Awsome) V2.0 (Completely Revamped)[V: 2.0 back from my break and completely revamping this suggestionPosted in: Suggestions
Suggestion Overview:
Books and bookshelves are useless but are some of the hardest items to get so this suggestion aims to make them useful
-There will be several different types of books which can be read
-regular books will contain information on how to make other book and bookshelves
-some will act as in game tutorials
-others will contain interesting stories and information for fun
-Some books will have random useful functions (like secret compartments and organizing maps)
-And of course there will be custom books
-Also new players will spawn with a regular book in inventory to help them make more books and access other tutorials (this is arguable)
Use for bookshelves:
Right now I’m not quite sure what the use of bookshelves should be and I’m torn between two different ideas so please tell me which you prefer or suggest your own use
Use 1: Bookshelves will store three books at a time and are required to read tutorial and story books (special books, regular books and customs books can all be read in inventory) With this suggestion you would use a custom book to take notes from other books before going on an adventure so you can access your notes anywhere
Use 2: Bookshelves would hold more books (possibly 5) and would be the only way to store books other than regular books (they would not be able to be deposited into a chest)
The books
All books could be crafted by combining a book with another item in a crafting grid (shapless)
The decription of the book will only list the secondary item used to craft the book (to save me the time of typing it)
Tutorial books
These books would help new and old players alike since many players are unaware of the wiki and tabing out can be annoying
Tool book - stick
List tools, what they’re for and their durability
Crafting Book- Crafting Table
Lists all recipes except for other books
Furnace book – Furnace
How furnaces work, different fuels
Book of Books- (combine 4 books, a special case)
Lists the recipes of all other books
Health book – Porkchop
Basics of health, different foods
Combat Book – Wooden Sword
Different weapons, combat system, different enemies
Armour Book – Leather
Lists armours, and how much the protect
Monster Book- bone
In-detail description of various hostile mobs
Animal Book – Feather
In-detail description of passive mobs and wolves (not squids)
Sea book – Boat
How boats work, description of fishing and of squid, drowing
Plant + Farming Book- Seeds
Tells of the various plants (and mushrooms) and how they grow, how bonemeal works and how to farm different plants
Dye book- Wool
How to get different dyes and how to shear sheep
Light Book- Torch
How light works and effects things (spawns, ice, etc)
Nether Book –obsidian
How to make a portal, everything about the nether
Piston Book- Piston
Mechanic s of Pistons
Minecart Book- Minecart
Information of minecarts, how tracks work, execration ect.
Redstone book – Redstone
Information about the basics of redstone
Advanced Redstone – (Special case, requires two pieces of redstone and a regular book)
The more advance ciruits and how to create logic gates
Liquid Book- Bucket
About how water and magma flow and react with each other.
Boom Book- Sulphur
All about tnt, its power and how to detonate it
Music Book – Noteblock
How noteblocks behave and how to tune them.
Story Books
These books serve no real purpose they are for entertainmant purposes only
Book of Notch- Apple
All about the story of the creator of minecraft
Ominous Book-Golden Apple
This strange book is titled… “Him”
(Apparently some people didn’t get the reference; this book is about hero brine)
History of Minecraft- Diamond
Tells the history of minecraft
Special Books
These books all serve different unique purposes
Secret Compartment book- Chest
When you read this book a chest with one space opens to hide an item in, This book looks almost exactly like the default book except for that it has a slight gold tinge
Dispenser Book – Dispenser
Right clicking this book will open up a single inventory space, whatever is place in here will be dispenses/fired when the book is read, This book looks almost exactly like the default book except that it has a slight grayish tinge
Atlas- Map
This book will show every map you have craft in that world, the maps however will not update if you view them with the book. (For balance issues I’m not sure if your location arrow should show up, let me know in the comments)
Custom Books-Ink Sac
Right clicking this book will open up a Gui like notepad that will allow you to write in it, this is useful for taking notes from other books before you go on an expedition
- Part of custom books is a new block called the Printing Press. This Block is similar to a furnace but uses ink sacs as fuel, you load in default books and you place a custom book into a special template spot and the press turns the book into custom books that are the same as the template (one book her ink sac)
Some Final Notes:
-First Off thanks to everyone who supports me I’ve gotten a ton of ideas from you guys and owe you all a lot (im sorry I didn’t give you guys credit, im working on a credits list now, its just taking awhile to gather all your oldly spelled names)
-Secondly, what do you think of Magic, I’ve been thinking of maybe adding spell books (The problem is trying to balance them) so let me know in the comments what you think and what kind of spells you think would be good, or if you even want such an idea
-Third a Modder has contacted me and we might collaborate on a better books mod together (he/she will do all the coding because I’m a complete java noob)
Closing!
If you really want to support me the best things to do are comment and put this banner somewhere (like in your signature!) This banner was a quick work so If any art savy people want to make a fancy banner I would love that and would give you credit.
Banner
[url=http://www.minecraftforum.net/viewtopic.php?f=1&t=180654] [img] http://i907.photobucket.com/albums/ac280/Arbwashere/bo-1.png[/img][/url]
THANKS! -
5
rosedragon posted a message on [Archive #4] Beta Survival Picture ThreadPosted in: Screenshots
This phoenix have gone through a reincarnation: the old smaller uglier version of it got burn by fire when server plugins gone broken. The serpent took weeks? months? to finish because I was busy with work and making the body of the serpent were so tricky. At the end I cheated here and there with worldedit copy paste, and it still looks awkward... Applied a lot of lessons from featherblade@thevoxelbox when making the serpent. Some revision on the phoenix also came from featherblade's constructive criticism. While the phoenix originally fighting the two headed dragon, the fight with serpent looks a lot more appropriate.
Made in rpg.montropolis.com
More of mine here: rosedragon's fantasy creations - To post a comment, please login.
4
1
BlockTV
PacketManager (Cut it down to the code)
This is probably useless showing this but this just sets the texture depending on the TV channel.
1
1
I am currently working on an update. Many of the bugs have been fixed.
1
It's not about getting the hat. It's about someone thanking me for putting hours upon hours in to creating a mod. AKA Donation.
1
I'm not desperate. People can donate as they wish, I reward them.
1
4 diamonds is not that steep but I do like the idea of a tier system.
1
That error is not from my mod. It looks like it is coming from a Christmas type mod.
1
Make sure you have the latest version. Also, can you provide a crash report?
1