Files
sevtech-ages-1.12.2/scripts/crafttweaker/classes/mods/armoreablemobs.zs
2025-07-23 08:37:00 +03:00

87 lines
2.7 KiB
Plaintext

#priority 3400
/*
SevTech: Ages Armoreable Mobs Script
This script is a zenClass to allow easy interation with Armoreable Mobs.
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 mods.armoreablemobs.ArmorHandler;
import mods.armoreablemobs.ArmorEntity;
import mods.armoreablemobs.ArmorSlot;
import mods.armoreablemobs.ArmorGroup;
zenClass ArmoreableMobs {
var mobEntities as ArmorEntity[string][string] = {};
var defaultArmorDropChance as double = 0.15;
var blankGroup as ArmorGroup = ArmorHandler.createArmorGroup("Blank", 1.0);
zenConstructor() {
// Set up "Blank" group
blankGroup.addArmor(ArmorHandler.createArmorSlot("head", null, 1, 0));
blankGroup.addArmor(ArmorHandler.createArmorSlot("chest", null, 1, 0));
blankGroup.addArmor(ArmorHandler.createArmorSlot("legs", null, 1, 0));
blankGroup.addArmor(ArmorHandler.createArmorSlot("feet", null, 1, 0));
blankGroup.addArmor(ArmorHandler.createArmorSlot("mainhand", null, 1, 0));
blankGroup.addArmor(ArmorHandler.createArmorSlot("offhand", null, 1, 0));
}
function addMobEntity(mobEntityType as string, mobName as string) {
var mobEntityTypeExists as bool = (mobEntities has mobEntityType);
if (mobEntityTypeExists) {
if (mobEntities[mobEntityType] has mobName) {
logger.logWarning("Attempted to add " ~ mobName
~ " as a mob armor entity but already exists in " ~ mobEntityType ~ " type");
return null;
}
}
if (!mobEntityTypeExists) {
mobEntities[mobEntityType] = {};
}
mobEntities[mobEntityType][mobName] = ArmorHandler.createArmorEntity(mobName);
}
function addMobEntities(mobEntityType as string, mobNames as string[]) {
for mobName in mobNames {
addMobEntity(mobEntityType, mobName);
}
}
/**
* Clears all gear from the mobs added to mobEntities
*/
function clearAllMobGear() {
for mobEntityType, mobEntitiesForType in mobEntities {
for mobName, mobEntity in mobEntitiesForType {
blankGroup.addEntity(mobEntity);
}
}
}
/**
* Adds armor group to the specified armor type
*/
function addArmorGroupToType(mobEntityType as string, armorGroup as ArmorGroup) {
if (!(mobEntities has mobEntityType)) {
logger.logWarning("Attempted to add armor group to " ~ mobEntityType ~ " mobs but none exist");
}
for mobName, mobEntity in mobEntities[mobEntityType] {
armorGroup.addEntity(mobEntity);
}
}
function addArmorGroupsToType(mobEntityType as string, armorGroups as ArmorGroup[]) {
for armorGroup in armorGroups {
addArmorGroupToType(mobEntityType, armorGroup);
}
}
}