Add loot tables generation

This commit is contained in:
DBotThePony 2021-08-18 18:41:28 +07:00
parent a976947a2a
commit 25d89c73d9
Signed by: DBot
GPG Key ID: DCC23B5715498507
2 changed files with 83 additions and 0 deletions

7
.gitignore vendored
View File

@ -34,3 +34,10 @@ forge*changelog.txt
/src/main/resources/assets/overdrive_that_matters/blockstates/pattern_storage.json
/src/main/resources/assets/overdrive_that_matters/blockstates/matter_replicator.json
/src/main/resources/assets/overdrive_that_matters/blockstates/matter_scanner.json
/src/main/resources/data/overdrive_that_matters/loot_tables/blocks/android_station.json
/src/main/resources/data/overdrive_that_matters/loot_tables/blocks/battery_bank.json
/src/main/resources/data/overdrive_that_matters/loot_tables/blocks/matter_capacitor_bank.json
/src/main/resources/data/overdrive_that_matters/loot_tables/blocks/matter_decomposer.json
/src/main/resources/data/overdrive_that_matters/loot_tables/blocks/matter_panel.json
/src/main/resources/data/overdrive_that_matters/loot_tables/blocks/matter_replicator.json
/src/main/resources/data/overdrive_that_matters/loot_tables/blocks/matter_scanner.json

View File

@ -11,6 +11,7 @@ const models = [
const fs = require('fs')
const _root = './src/main/resources/assets/overdrive_that_matters/'
const root_data = './src/main/resources/data/overdrive_that_matters/'
const root = _root + 'models/block/'
const time = Date.now()
@ -140,4 +141,79 @@ const facings = [
}
}
// дропы с машин
{
const drops = {
android_station: ['energy_cap', 'battery_container'],
battery_bank: ['battery_bank'],
matter_capacitor_bank: ['matter_container'],
matter_panel: ['tasks'],
}
const drops_workers = {
matter_decomposer: ['work_slots', 'matter_capability'],
matter_replicator: ['regular_slots', 'reserved_slots', 'matter_capability'],
matter_scanner: ['work_slots'],
}
const combined = {}
for (const name in drops) {
combined[name] = drops[name]
}
for (const name in drops_workers) {
drops_workers[name].push('work_ticks', 'current_job', 'energy_cap', 'battery_container')
combined[name] = drops_workers[name]
}
for (const name in combined) {
const values = combined[name]
const state = {
type: 'minecraft:block',
pools: [
{
rolls: 1,
bonus_rolls: 0,
entries: [
{
type: 'minecraft:item',
name: "overdrive_that_matters:" + name,
functions: [
{
"function": "minecraft:copy_name",
"source": "block_entity"
},
{
"function": "minecraft:copy_nbt",
"source": "block_entity",
"ops": [
{
"source": "Name",
"target": "BlockEntityTag.Name",
"op": "replace"
}
]
}
]
}
]
}
]
}
for (const type of values) {
state.pools[0].entries[0].functions[1].ops.push({
"source": type,
"target": "BlockEntityTag." + type,
"op": "replace"
})
}
fs.writeFileSync(root_data + 'loot_tables/blocks/' + name + '.json', JSON.stringify(state, null, '\t'))
}
}
process.stdout.write(`Generated data files in ${Date.now() - time}ms\n`)