This site works best with JavaScript enabled. Please enable JavaScript to get the best experience from this site.
Made one a while back but it was too laggy, anyone know a way for custom ores to gen with little or no lag (ModPE no Add-on)
Well here is this, I reverse engineered the exact code that generates the patches of ores in the world from the game code, this should help:
Quote from MrAndyPE» Quote from MrAndyPE» For anyone interested, here is my reverse engineered ModPE generator code (note this is only the code to generate an ore patch at a given x y z coordinate, not the code to actually place each of the patches in the world): function WorldGenMinable(blockId, numberOfBlocks = 6, blockToReplace = 1) { this.blockId = blockId; this.numberOfBlocks = numberOfBlocks; this.blockToReplace = blockToReplace; this.generate(x, y, z) { var direction = Math.random() * Math.PI; var var7 = ((x + 8) + Math.sin(direction) * this.numberOfBlocks / 8.0); var var9 = ((x + 8) - Math.sin(direction) * this.numberOfBlocks / 8.0); var var11 = ((z + 8) + Math.cos(direction) * this.numberOfBlocks / 8.0); var var13 = ((z + 8) - Math.cos(direction) * this.numberOfBlocks / 8.0); var var15 = (y + Math.floor(Math.random() * 3) - 2); var var17 = (y + Math.floor(Math.random() * 3) - 2); for(var currentBlock = 0; currentBlock <= this.numberOfBlocks; ++currentBlock) { var var20 = var7 + (var9 - var7) * currentBlock / this.numberOfBlocks; var var22 = var15 + (var17 - var15) * currentBlock / this.numberOfBlocks; var var24 = var11 + (var13 - var11) * currentBlock / this.numberOfBlocks; var var26 = Math.random() * this.numberOfBlocks / 16.0; var var28 = (Math.sin(currentBlock * Math.PI / this.numberOfBlocks) + 1.0) * var26 + 1.0; var var30 = (Math.sin(currentBlock * Math.PI / this.numberOfBlocks) + 1.0) * var26 + 1.0; var var32 = Math.floor(var20 - var28 / 2.0); var var33 = Math.floor(var22 - var30 / 2.0); var var34 = Math.floor(var24 - var28 / 2.0); var var35 = Math.floor(var20 + var28 / 2.0); var var36 = Math.floor(var22 + var30 / 2.0); var var37 = Math.floor(var24 + var28 / 2.0); for(var var38 = var32; var38 <= var35; ++var38) { var var39 = (var38 + 0.5 - var20) / (var28 / 2.0); if(var39 * var39 < 1.0) { for(var var41 = var33; var41 <= var36; ++var41) { var var42 = (var41 + 0.5 - var22) / (var30 / 2.0); if (var39 * var39 + var42 * var42 < 1.0) { for(var var44 = var34; var44 <= var37; ++var44) { var var45 = (var44 + 0.5 - var24) / (var28 / 2.0); if (var39 * var39 + var42 * var42 + var45 * var45 < 1.0 && getTile(var38, var41, var44) == this.blockToReplace) { setTile(var38, var41, var44, this.block, 0); } } } } } } } }};
Quote from MrAndyPE» For anyone interested, here is my reverse engineered ModPE generator code (note this is only the code to generate an ore patch at a given x y z coordinate, not the code to actually place each of the patches in the world): function WorldGenMinable(blockId, numberOfBlocks = 6, blockToReplace = 1) { this.blockId = blockId; this.numberOfBlocks = numberOfBlocks; this.blockToReplace = blockToReplace; this.generate(x, y, z) { var direction = Math.random() * Math.PI; var var7 = ((x + 8) + Math.sin(direction) * this.numberOfBlocks / 8.0); var var9 = ((x + 8) - Math.sin(direction) * this.numberOfBlocks / 8.0); var var11 = ((z + 8) + Math.cos(direction) * this.numberOfBlocks / 8.0); var var13 = ((z + 8) - Math.cos(direction) * this.numberOfBlocks / 8.0); var var15 = (y + Math.floor(Math.random() * 3) - 2); var var17 = (y + Math.floor(Math.random() * 3) - 2); for(var currentBlock = 0; currentBlock <= this.numberOfBlocks; ++currentBlock) { var var20 = var7 + (var9 - var7) * currentBlock / this.numberOfBlocks; var var22 = var15 + (var17 - var15) * currentBlock / this.numberOfBlocks; var var24 = var11 + (var13 - var11) * currentBlock / this.numberOfBlocks; var var26 = Math.random() * this.numberOfBlocks / 16.0; var var28 = (Math.sin(currentBlock * Math.PI / this.numberOfBlocks) + 1.0) * var26 + 1.0; var var30 = (Math.sin(currentBlock * Math.PI / this.numberOfBlocks) + 1.0) * var26 + 1.0; var var32 = Math.floor(var20 - var28 / 2.0); var var33 = Math.floor(var22 - var30 / 2.0); var var34 = Math.floor(var24 - var28 / 2.0); var var35 = Math.floor(var20 + var28 / 2.0); var var36 = Math.floor(var22 + var30 / 2.0); var var37 = Math.floor(var24 + var28 / 2.0); for(var var38 = var32; var38 <= var35; ++var38) { var var39 = (var38 + 0.5 - var20) / (var28 / 2.0); if(var39 * var39 < 1.0) { for(var var41 = var33; var41 <= var36; ++var41) { var var42 = (var41 + 0.5 - var22) / (var30 / 2.0); if (var39 * var39 + var42 * var42 < 1.0) { for(var var44 = var34; var44 <= var37; ++var44) { var var45 = (var44 + 0.5 - var24) / (var28 / 2.0); if (var39 * var39 + var42 * var42 + var45 * var45 < 1.0 && getTile(var38, var41, var44) == this.blockToReplace) { setTile(var38, var41, var44, this.block, 0); } } } } } } } }};
For anyone interested, here is my reverse engineered ModPE generator code (note this is only the code to generate an ore patch at a given x y z coordinate, not the code to actually place each of the patches in the world):
function WorldGenMinable(blockId, numberOfBlocks = 6, blockToReplace = 1) { this.blockId = blockId; this.numberOfBlocks = numberOfBlocks; this.blockToReplace = blockToReplace; this.generate(x, y, z) { var direction = Math.random() * Math.PI; var var7 = ((x + 8) + Math.sin(direction) * this.numberOfBlocks / 8.0); var var9 = ((x + 8) - Math.sin(direction) * this.numberOfBlocks / 8.0); var var11 = ((z + 8) + Math.cos(direction) * this.numberOfBlocks / 8.0); var var13 = ((z + 8) - Math.cos(direction) * this.numberOfBlocks / 8.0); var var15 = (y + Math.floor(Math.random() * 3) - 2); var var17 = (y + Math.floor(Math.random() * 3) - 2); for(var currentBlock = 0; currentBlock <= this.numberOfBlocks; ++currentBlock) { var var20 = var7 + (var9 - var7) * currentBlock / this.numberOfBlocks; var var22 = var15 + (var17 - var15) * currentBlock / this.numberOfBlocks; var var24 = var11 + (var13 - var11) * currentBlock / this.numberOfBlocks; var var26 = Math.random() * this.numberOfBlocks / 16.0; var var28 = (Math.sin(currentBlock * Math.PI / this.numberOfBlocks) + 1.0) * var26 + 1.0; var var30 = (Math.sin(currentBlock * Math.PI / this.numberOfBlocks) + 1.0) * var26 + 1.0; var var32 = Math.floor(var20 - var28 / 2.0); var var33 = Math.floor(var22 - var30 / 2.0); var var34 = Math.floor(var24 - var28 / 2.0); var var35 = Math.floor(var20 + var28 / 2.0); var var36 = Math.floor(var22 + var30 / 2.0); var var37 = Math.floor(var24 + var28 / 2.0); for(var var38 = var32; var38 <= var35; ++var38) { var var39 = (var38 + 0.5 - var20) / (var28 / 2.0); if(var39 * var39 < 1.0) { for(var var41 = var33; var41 <= var36; ++var41) { var var42 = (var41 + 0.5 - var22) / (var30 / 2.0); if (var39 * var39 + var42 * var42 < 1.0) { for(var var44 = var34; var44 <= var37; ++var44) { var var45 = (var44 + 0.5 - var24) / (var28 / 2.0); if (var39 * var39 + var42 * var42 + var45 * var45 < 1.0 && getTile(var38, var41, var44) == this.blockToReplace) { setTile(var38, var41, var44, this.block, 0); } } } } } } } }};
", sans-serif">Want to get paid for uploading mods?
", sans-serif">Click here
For free Bitcoins, click here!
👌
Can you upload this as a .js file on mediafire or Dropbox. Thanks. (Copy and pasting from MinecraftForums messes up the code)
Made one a while back but it was too laggy, anyone know a way for custom ores to gen with little or no lag (ModPE no Add-on)
Well here is this, I reverse engineered the exact code that generates the patches of ores in the world from the game code, this should help:
", sans-serif">Want to get paid for uploading mods?
", sans-serif">Click here
For free Bitcoins, click here!
👌
Can you upload this as a .js file on mediafire or Dropbox. Thanks. (Copy and pasting from MinecraftForums messes up the code)