From f4885d81e8771b490276b19e6809d185dfde2710 Mon Sep 17 00:00:00 2001 From: Romain Beaumont Date: Sun, 13 May 2018 19:09:27 +0200 Subject: [PATCH] bring (static) multi version support to world generations --- src/lib/plugins/world.js | 9 +++++---- src/lib/worldGenerations/all_the_blocks.js | 7 ++++--- src/lib/worldGenerations/grass_field.js | 5 +++-- src/lib/worldGenerations/nether.js | 5 +++-- src/lib/worldGenerations/superflat.js | 5 +++-- 5 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/lib/plugins/world.js b/src/lib/plugins/world.js index ba6298b..a1f133b 100644 --- a/src/lib/plugins/world.js +++ b/src/lib/plugins/world.js @@ -1,7 +1,5 @@ const spiralloop = require('spiralloop') -const World = require('prismarine-world')(require('../version')) - const generations = require('flying-squid').generations const { promisify } = require('util') const fs = require('fs') @@ -10,7 +8,9 @@ const { level } = require('prismarine-provider-anvil') const fsStat = promisify(fs.stat) const fsMkdir = promisify(fs.mkdir) -module.exports.server = async function (serv, {worldFolder, generation = {'name': 'diamond_square', 'options': {'worldHeight': 80}}} = {}) { +module.exports.server = async function (serv, {version, worldFolder, generation = {'name': 'diamond_square', 'options': {'worldHeight': 80}}} = {}) { + const World = require('prismarine-world')(version) + const newSeed = generation.options.seed || Math.floor(Math.random() * Math.pow(2, 31)) let seed let regionFolder @@ -31,10 +31,11 @@ module.exports.server = async function (serv, {worldFolder, generation = {'name' } } else { seed = newSeed } generation.options.seed = seed + generation.options.version = version serv.emit('seed', generation.options.seed) const generationModule = generations[generation.name] ? generations[generation.name] : require(generation.name) serv.overworld = new World(generationModule(generation.options), regionFolder) - serv.netherworld = new World(generations['nether']({})) + serv.netherworld = new World(generations['nether'](generation.options)) // serv.endworld = new World(generations["end"]({})); // WILL BE REMOVED WHEN ACTUALLY IMPLEMENTED diff --git a/src/lib/worldGenerations/all_the_blocks.js b/src/lib/worldGenerations/all_the_blocks.js index 5a1ceea..ffb6e44 100644 --- a/src/lib/worldGenerations/all_the_blocks.js +++ b/src/lib/worldGenerations/all_the_blocks.js @@ -1,8 +1,9 @@ -const Chunk = require('prismarine-chunk')(require('../version')) const Vec3 = require('vec3').Vec3 -const blocks = require('minecraft-data')(require('../version')).blocks -function generation () { +function generation ({version}) { + const Chunk = require('prismarine-chunk')(version) + const blocks = require('minecraft-data')(version).blocks + function generateSimpleChunk () { const chunk = new Chunk() diff --git a/src/lib/worldGenerations/grass_field.js b/src/lib/worldGenerations/grass_field.js index 94f43d6..0e086f9 100644 --- a/src/lib/worldGenerations/grass_field.js +++ b/src/lib/worldGenerations/grass_field.js @@ -1,7 +1,8 @@ -const Chunk = require('prismarine-chunk')(require('../version')) const Vec3 = require('vec3').Vec3 -function generation () { +function generation ({version}) { + const Chunk = require('prismarine-chunk')(version) + function generateSimpleChunk () { const chunk = new Chunk() diff --git a/src/lib/worldGenerations/nether.js b/src/lib/worldGenerations/nether.js index d15d9ec..ded6ab4 100644 --- a/src/lib/worldGenerations/nether.js +++ b/src/lib/worldGenerations/nether.js @@ -1,8 +1,9 @@ -const Chunk = require('prismarine-chunk')(require('../version')) const Vec3 = require('vec3').Vec3 const rand = require('random-seed') -function generation ({seed, level = 50} = {}) { +function generation ({version, seed, level = 50} = {}) { + const Chunk = require('prismarine-chunk')(version) + function generateChunk (chunkX, chunkZ) { const seedRand = rand.create(seed + ':' + chunkX + ':' + chunkZ) const chunk = new Chunk() diff --git a/src/lib/worldGenerations/superflat.js b/src/lib/worldGenerations/superflat.js index 68344fe..6e06207 100644 --- a/src/lib/worldGenerations/superflat.js +++ b/src/lib/worldGenerations/superflat.js @@ -1,7 +1,8 @@ -const Chunk = require('prismarine-chunk')(require('../version')) const Vec3 = require('vec3').Vec3 -function generation ({opt = 'default', bottomId = 7, middleId = 1, topId = 2, middleThickness = 3, debug = false} = {}) { +function generation ({version, opt = 'default', bottomId = 7, middleId = 1, topId = 2, middleThickness = 3, debug = false} = {}) { + const Chunk = require('prismarine-chunk')(version) + function generateChunk () { const chunk = new Chunk() const height = middleThickness + 1