mirror of https://github.com/acid-info/WebCave.git
feature: create default multiplayer world
This commit is contained in:
parent
c7dc446e3a
commit
7f4bfdee82
|
@ -19,3 +19,5 @@ WORLD_FILE_NAME=main_instance.world
|
|||
|
||||
# Used for CORS policy
|
||||
CLIENT_ORIGIN_URL=
|
||||
|
||||
USE_FALLBACK_DEFAULT_WORLD=true
|
|
@ -22,14 +22,21 @@ function initWorld() {
|
|||
if (world.loadFromFile()) {
|
||||
logger.info( "Loaded the world from file." );
|
||||
} else {
|
||||
logger.info( "Creating a new empty world." );
|
||||
if (Config.USE_FALLBACK_DEFAULT_WORLD) {
|
||||
logger.info( "Creating a new world from a template of default world." );
|
||||
|
||||
const defaultWorldSeed = "acid-info";
|
||||
const magnitude = 0.1;
|
||||
world.loadFromFile(world.getDefaultWorldFilePath())
|
||||
} else {
|
||||
logger.info( "Creating a new empty world." );
|
||||
|
||||
const defaultWorldSeed = "acid-info";
|
||||
const magnitude = 0.1;
|
||||
|
||||
world.createRandomisedWorld(
|
||||
Config.WORLD_GROUNDHEIGHT, defaultWorldSeed, undefined, magnitude
|
||||
);
|
||||
}
|
||||
|
||||
world.createRandomisedWorld(
|
||||
Config.WORLD_GROUNDHEIGHT, defaultWorldSeed, undefined, magnitude
|
||||
);
|
||||
world.prepareNewSaveDir()
|
||||
world.saveToFile();
|
||||
}
|
||||
|
|
|
@ -15,7 +15,8 @@ const {
|
|||
ONE_USER_PER_IP,
|
||||
IS_BEHIND_PROXY,
|
||||
WORLD_FILE_NAME,
|
||||
CLIENT_ORIGIN_URL
|
||||
CLIENT_ORIGIN_URL,
|
||||
USE_FALLBACK_DEFAULT_WORLD
|
||||
} = process.env;
|
||||
|
||||
if (!PORT) {
|
||||
|
@ -54,7 +55,8 @@ const Config: AppConfig = {
|
|||
CORS_POLICY: { credentials: true,
|
||||
origin: CLIENT_ORIGIN_URL,
|
||||
methods: 'GET,HEAD,PUT,PATCH,POST,DELETE'
|
||||
}
|
||||
},
|
||||
USE_FALLBACK_DEFAULT_WORLD: USE_FALLBACK_DEFAULT_WORLD === "true"
|
||||
}
|
||||
|
||||
export default Config;
|
|
@ -14,4 +14,5 @@ export type AppConfig = {
|
|||
WORLD_FILE_NAME: string
|
||||
WORLD_FILE_FOLDER: string
|
||||
CORS_POLICY: CorsOptions
|
||||
USE_FALLBACK_DEFAULT_WORLD: boolean
|
||||
}
|
|
@ -17,6 +17,10 @@ class ServerWorld extends World {
|
|||
return path.join(process.cwd(), this.worldSaveDirName, this.worldSaveFileName);
|
||||
}
|
||||
|
||||
public getDefaultWorldFilePath() {
|
||||
return path.join(process.cwd(), "worlds", "default.world")
|
||||
}
|
||||
|
||||
public prepareNewSaveDir() {
|
||||
const dir = path.join(process.cwd(), this.worldSaveDirName);
|
||||
|
||||
|
@ -25,9 +29,9 @@ class ServerWorld extends World {
|
|||
}
|
||||
}
|
||||
|
||||
public loadFromFile() {
|
||||
public loadFromFile(_path?: string) {
|
||||
try {
|
||||
const path = this.getWorldFilePath();
|
||||
const path = _path || this.getWorldFilePath();
|
||||
const data = FileUtil.readFileSync(path).toString('utf8');
|
||||
|
||||
const [spawnX, spawnY, spawnZ] = data.split(',');
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue