From 6bf5da5569f58ca4f3b2a17bd96c9d9eb4d0d566 Mon Sep 17 00:00:00 2001 From: Shaun Date: Mon, 1 Jan 2024 08:49:51 +0200 Subject: [PATCH] modding #2012: Added the beforeSpawnResource that allows spawned resources' positions to be set by mods --- src/server/world/resourceSpawner.js | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/server/world/resourceSpawner.js b/src/server/world/resourceSpawner.js index 28ae1e4c..9ea5890d 100644 --- a/src/server/world/resourceSpawner.js +++ b/src/server/world/resourceSpawner.js @@ -1,4 +1,5 @@ let herbs = require('../config/herbs'); +const eventEmitter = require('../misc/events'); const defaultGatherChance = { herb: 100, @@ -122,8 +123,20 @@ module.exports = { }, spawn: function (node) { - let blueprint = node.blueprint; - let position = this.getRandomSpawnPosition(node, blueprint); + const blueprint = node.blueprint; + + const eBeforeSpawnResource = { + node, + position: undefined, + allowRandomPosition: true + }; + eventEmitter.emit('beforeSpawnResource', eBeforeSpawnResource); + + if (eBeforeSpawnResource.allowRandomPosition && !eBeforeSpawnResource.position) + eBeforeSpawnResource.position = this.getRandomSpawnPosition(node, blueprint); + + const { position } = eBeforeSpawnResource; + if (!position) return false;