LookAtMySuitBot/js/node_modules/prismarine-registry/lib/pc/transforms.js

76 lines
2.5 KiB
JavaScript
Raw Normal View History

2023-12-24 20:08:39 -05:00
const nbt = require('prismarine-nbt')
module.exports = {
networkBiomesToMcDataSchema (biome, staticData) {
const name = biome.name.replace('minecraft:', '')
const equivalent = staticData.biomesByName[name]
return Object.assign(biome.element, {
...equivalent,
id: biome.id,
name,
category: biome.element.category,
temperature: biome.element.temperature,
depth: biome.element.depth,
scale: biome.element.scale,
precipitation: biome.element.precipitation,
rainfall: biome.element.downfall
})
},
mcDataSchemaToNetworkBiomes (dynBiomeData, staticData) {
const ret = []
if (!dynBiomeData) {
for (const biome of staticData.biomesArray) {
ret.push({
name: nbt.string('minecraft:' + biome.name),
id: nbt.int(biome.id),
element: nbt.comp({
depth: nbt.float(biome.depth),
scale: nbt.float(biome.scale),
category: nbt.string(biome.category),
temperature: nbt.float(biome.temperature),
precipitation: nbt.string(biome.precipitation),
downfall: nbt.float(biome.rainfall),
effects: {
// TODO: we need to add more data to static biomes.json
sky_color: nbt.int(biome.color)
}
})
})
}
} else {
for (const biome of dynBiomeData) {
const oldEffects = Object.entries(biome.effects).map(([k, v]) => ({
[k]: nbt.int(v)
})).reduce((a, b) => Object.assign(a, b), {})
ret.push({
name: nbt.string('minecraft:' + biome.name),
id: nbt.int(biome.id),
element: nbt.comp({
depth: nbt.float(biome.depth),
scale: nbt.float(biome.scale),
category: nbt.string(biome.category),
temperature: nbt.float(biome.temperature),
precipitation: nbt.string(biome.precipitation),
downfall: nbt.float(biome.rainfall),
effects: nbt.comp({
...oldEffects,
mood_sound: biome.effects?.mood_sound
? nbt.comp({
tick_delay: nbt.int(biome.effects.mood_sound.tick_delay),
offset: nbt.double(biome.effects.mood_sound.offset),
sound: nbt.string(biome.effects.mood_sound.sound),
block_search_extent: nbt.int(biome.effects.mood_sound.block_search_extent)
})
: undefined
})
})
})
}
}
return ret
}
}