const models = [ 'android_station', 'battery_bank', 'matter_scanner', 'pattern_storage', 'matter_replicator', // 'matter_panel', 'matter_decomposer', ]; const fs = require('fs') const root = './src/main/resources/assets/overdrive_that_matters/models/block/' const handle = fs.openSync('./src/main/java/ru/dbotthepony/mc/otm/shapes/BlockShapes.java', 'w') fs.writeSync(handle, 'package ru.dbotthepony.mc.otm.shapes;\n\n\n') fs.writeSync(handle, `// Auto generated at ${new Date().toUTCString()}\n`) fs.writeSync(handle, 'public class BlockShapes {\n') for (const model of models) { fs.writeSync(handle, '\tpublic static final BlockShape ' + model.toUpperCase() + ' = new BlockShape(\n') const obj = JSON.parse(fs.readFileSync(root + model + '.json', {encoding: 'utf-8'})) let first = true for (const elementID in obj.elements) { const element = obj.elements[elementID] if (element.rotation) continue; const from = element.from const to = element.to if (first) { first = false } else { fs.writeSync(handle, ',\n') } fs.writeSync(handle, `\t\tnew SimpleCuboid(${from[0] / 16}d, ${from[1] / 16}d, ${from[2] / 16}d, ${to[0] / 16}d, ${to[1] / 16}d, ${to[2] / 16}d)`) } fs.writeSync(handle, '\n\t);\n\n') } fs.writeSync(handle, '}') fs.closeSync(handle)