diff --git a/.gitignore b/.gitignore index dd8629d35..5fab33083 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/shapenator.js b/shapenator.js index f18cdd6a8..43bf3eca5 100644 --- a/shapenator.js +++ b/shapenator.js @@ -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`)