// priority: 0 "use strict"; TFCEvents.createChunkDataProvider('mars', event => { const rain = TFC.misc.lerpFloatLayer(0, 0, 0, 0); const tempLayer = TFC.misc.newOpenSimplex2D(event.worldSeed + 4621678939469) .spread(0.2) .octaves(3) .scaled(70, 90) const forestLayer = TFC.misc.newOpenSimplex2D(event.worldSeed + 98713856895664) .spread(0.8) .terraces(9) .affine(6, 12) .scaled(6, 18, 0, 1) // Precompute the surface & aquifer heights as constants as this is nether and does not realistically change var heights = []; var i = 0; while (i < 256) { heights.push(127); i++; } var aquifer = []; i = 0; while (i < 16) { aquifer.push(32); i++; } event.partial((data, chunk) => { var x = chunk.pos.minBlockX; var z = chunk.pos.minBlockZ; var temp = TFC.misc.lerpFloatLayer( tempLayer.noise(x, z), tempLayer.noise(x, z + 15), tempLayer.noise(x + 15, z), tempLayer.noise(x + 15, z + 15) ); data.generatePartial( rain, temp, forestLayer.noise(x, z) * 4, // Kube accepts ordinal numbers for enum constants forestLayer.noise(x * 78423 + 869, z), forestLayer.noise(x, z * 651349 - 698763) ); }); event.full((data, chunk) => { data.generateFull(heights, aquifer); }); event.rocks((x, y, z, surfaceY, cache, rockLayers) => { return rockLayers.sampleAtLayer(0, 0); }); })