minecraft server init
This commit is contained in:
146
scripts/crafttweaker/classes/utils/unifier.zs
Normal file
146
scripts/crafttweaker/classes/utils/unifier.zs
Normal file
@ -0,0 +1,146 @@
|
||||
#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);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user