rewrite the ore processing to be even less code, buff compatability for agricultural automation

This commit is contained in:
2025-06-29 14:36:19 +02:00
parent 0e19f47a67
commit ce717ad665
17 changed files with 413 additions and 509 deletions

View File

@ -1,40 +1,64 @@
// priority: 0
function Metal(name) {
this.name = name;
}
global.metalForm = (metal, tag, form, qty) => {
if (qty == undefined) {
qty = 1;
}
let itemType = AlmostUnified.getPreferredItemForTag(`forge:${tag}/${metal}`);
Metal.of = function(name) {
return new Metal(name);
}
Metal.prototype.formOf = function(form) {
let itemType = AlmostUnified.getPreferredItemForTag(`forge:${form}/${this.name}`);
if (itemType.id == 'minecraft:air') {
console.log(`metals: ${metal} ${form} has unknown tag forge:${tag}/${metal}?`)
let ret = Item.of(`alltheores:${metal}_${form}`);
if (ret.id == "minecraft:air") {
return Item.of(`thermal:${metal}_${form}`);
}
return ret;
console.warn(`metals: #forge:${form}/${this.name} is not supported by AlmostUnified! Trying a vanilla hack...`);
itemType = Ingredient.of(`#forge:${form}/${this.name}`).getFirst();
}
if (itemType.id == 'minecraft:air') {
console.warn(`metals: No metal items found in #forge:${form}/${this.name}`)
} else {
console.log(`metals: Found ${itemType.id} for #forge:${form}/${this.name}`);
}
console.log(`metals: forge:${tag}/${metal} found`);
return itemType;
}
global.dustItem = (material, qty) => {
return global.metalForm(material, 'dusts', 'dust', qty);
// Format is [property name, tag name]
const forms = [
['ingot', 'ingots'],
['gear', 'gears'],
['rod', 'rods'],
['nugget', 'nuggets'],
['plate', 'plates'],
['dust', 'dusts']
];
for (const [prop_name, form_tag] of forms) {
Metal.prototype[prop_name] = function() {
return this.formOf(form_tag);
}
}
global.ingotItem = (material, qty) => {
return global.metalForm(material, 'ingots', 'ingot', qty);
global.metalForm = (metal, tag) => {
return (new Metal(metal)).formOf(tag);
}
global.plateItem = (material, qty) => {
return global.metalForm(material, 'plates', 'plate', qty);
global.dustItem = (material) => {
return global.metalForm(material, 'dusts');
}
global.gearItem = (material, qty) => {
return global.metalForm(material, 'gears', 'gear', qty);
global.ingotItem = (material) => {
return global.metalForm(material, 'ingots');
}
global.nuggetItem = (material, qty) => {
return global.metalForm(material, 'nuggets', 'nugget', qty);
global.plateItem = (material) => {
return global.metalForm(material, 'plates');
}
global.gearItem = (material) => {
return global.metalForm(material, 'gears');
}
global.nuggetItem = (material) => {
return global.metalForm(material, 'nuggets');
}
global.replaceInputs = (evt, filter, replaceMap) => {