147 lines
4.4 KiB
Plaintext
147 lines
4.4 KiB
Plaintext
#priority 2750
|
|
|
|
/*
|
|
SevTech: Ages Unifier Class Script
|
|
|
|
Note: These scripts are created and for the usage in SevTech: Ages and other
|
|
modpacks curated by DarkPacks. You can use these scripts for reference and for
|
|
learning but not for copying and pasting and claiming as your own.
|
|
*/
|
|
import crafttweaker.item.IItemStack;
|
|
import crafttweaker.liquid.ILiquidStack;
|
|
import crafttweaker.oredict.IOreDictEntry;
|
|
|
|
import mods.chisel.Carving;
|
|
|
|
zenClass Unifier {
|
|
// In order of priority
|
|
var defaultPreferredMods as string[] = [
|
|
"minecraft",
|
|
"contenttweaker",
|
|
"immersiveengineering",
|
|
"mekanism"
|
|
];
|
|
|
|
zenConstructor() {
|
|
}
|
|
|
|
/*
|
|
Figure out which item is preferred
|
|
|
|
The array should be in order of priority, so if its found, return immediately
|
|
as this will be the most preferred option
|
|
*/
|
|
function getPreferredItem(oreDictEntry as IOreDictEntry) as IItemStack {
|
|
return getPreferredItem(oreDictEntry, defaultPreferredMods);
|
|
}
|
|
function getPreferredItem(oreDictEntry as IOreDictEntry, preferredMods as string[]) as IItemStack {
|
|
for modName in preferredMods {
|
|
for item in oreDictEntry.items {
|
|
if (item.definition.owner == modName) {
|
|
return item;
|
|
}
|
|
}
|
|
}
|
|
|
|
// If there is still no item found, take the first availble
|
|
return oreDictEntry.firstItem;
|
|
}
|
|
|
|
function clearOreDict(oreDictEntry as IOreDictEntry) {
|
|
unify(oreDictEntry, null, null);
|
|
}
|
|
function clearOreDict(oreDictEntry as IOreDictEntry, liquid as ILiquidStack) {
|
|
unify(oreDictEntry, null, liquid);
|
|
}
|
|
function clearOreDict(oreDictEntry as IOreDictEntry, preferredItem as IItemStack, liquid as ILiquidStack) {
|
|
unify(oreDictEntry, preferredItem, liquid);
|
|
}
|
|
|
|
function unify(oreDictEntry as IOreDictEntry) {
|
|
unify(oreDictEntry, getPreferredItem(oreDictEntry), null);
|
|
}
|
|
function unify(oreDictEntry as IOreDictEntry, liquid as ILiquidStack) {
|
|
unify(oreDictEntry, getPreferredItem(oreDictEntry), liquid);
|
|
}
|
|
function unify(oreDictEntry as IOreDictEntry, preferredItem as IItemStack) {
|
|
unify(oreDictEntry, preferredItem, null);
|
|
}
|
|
function unify(oreDictEntry as IOreDictEntry, preferredItem as IItemStack, liquid as ILiquidStack) {
|
|
var hasLiquid = liquid as bool;
|
|
|
|
var vgName = "vg_" + oreDictEntry.name.toLowerCase();
|
|
if (!isNull(preferredItem) & chiselBlocks.keys has oreDictEntry) {
|
|
print("[Chisel] Removing " + oreDictEntry.name);
|
|
Carving.removeGroup(oreDictEntry.name);
|
|
print("[Chisel] Creating " + vgName);
|
|
Carving.addGroup(vgName);
|
|
print("[Chisel] Adding " + preferredItem.definition.id + " to " + vgName);
|
|
Carving.addVariation(vgName, preferredItem);
|
|
}
|
|
|
|
for item in oreDictEntry.items {
|
|
if (!item.matches(preferredItem)) {
|
|
oreDictEntry.remove(item);
|
|
|
|
furnace.remove(item);
|
|
furnace.setFuel(item, 0); // Setting the burnTime to 0 will stop the input from being a fuel item
|
|
|
|
/*
|
|
Remove from mod integrations
|
|
*/
|
|
// ==================================
|
|
// Applied Energistics 2
|
|
appliedEnergistics.removeGrindstone(item);
|
|
appliedEnergistics.removeInscribe(item);
|
|
|
|
// ==================================
|
|
// Astral Sorcery
|
|
astralSorcery.removeGrindstone(item);
|
|
|
|
// ==================================
|
|
// Immersive Engineering
|
|
immersiveEngineering.removeAlloy(item);
|
|
immersiveEngineering.removeArcFurn(item);
|
|
immersiveEngineering.removeCrusher(item);
|
|
immersiveEngineering.removeCrusherByInput(item);
|
|
immersiveEngineering.removePress(item);
|
|
|
|
// ==================================
|
|
// Just Enough Items
|
|
mods.jei.JEI.removeAndHide(item);
|
|
|
|
// ==================================
|
|
// Mekanism
|
|
mekanism.removeChemicalCrystallizer(item);
|
|
mekanism.removeChemicalInjection(item);
|
|
mekanism.removeCombiner(item);
|
|
mekanism.removeCrusher(item);
|
|
mekanism.removeSmelter(item);
|
|
mekanism.removeEnrichment(item);
|
|
mekanism.removeInfusion(item);
|
|
mekanism.removeCompressor(item);
|
|
mekanism.removeSawmill(item);
|
|
mekanism.removePurification(item);
|
|
|
|
// ==================================
|
|
// Tinker's Construct
|
|
tinkers.removeCastingBasin(item);
|
|
tinkers.removeCastingTable(item);
|
|
|
|
if (hasLiquid) {
|
|
tinkers.removeMelting(liquid, item);
|
|
}
|
|
|
|
if (item.definition.owner == "chisel" & chiselBlocks.keys has oreDictEntry) {
|
|
print("[Chisel] Adding " + item.definition.id + " to " + vgName);
|
|
Carving.addVariation(vgName, item);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (!isNull(preferredItem)) {
|
|
scripts.crafttweaker.utils.ensureOreDict(oreDictEntry, preferredItem);
|
|
}
|
|
}
|
|
}
|