public void FixAllValues(EnumTranslator enumTranslator, EnumTranslator.TranslationMode mode) { if (enumTranslator == null) { return; } EnumTranslator.FixEnumValues(enumTranslator, mode, identifiableData); EnumTranslator.FixEnumValues(enumTranslator, mode, playerData); EnumTranslator.FixEnumValues(enumTranslator, mode, customAmmo); EnumTranslator.FixEnumValues(enumTranslator, mode, worldData); var newDict = new Dictionary <AmmoIdentifier, List <VanillaAmmoData> >(); long FixValue(AmmoType type, long original) { switch (type) { case AmmoType.PLAYER: return((int)enumTranslator.TranslateEnum(typeof(PlayerState.AmmoMode), mode, (PlayerState.AmmoMode)(int) original)); case AmmoType.LANDPLOT: return((int)enumTranslator.TranslateEnum(typeof(SiloStorage.StorageType), mode, (SiloStorage.StorageType)(int) original)); } return(original); } foreach (var v in customAmmo) { newDict[new AmmoIdentifier(v.Key.AmmoType, FixValue(v.Key.AmmoType, v.Key.longIdentifier), v.Key.stringIdentifier, v.Key.custommodid)] = v.Value; } customAmmo = newDict; EnumTranslator.FixEnumValues(enumTranslator, mode, extendedData); EnumTranslator.FixEnumValues(enumTranslator, mode, extendedWorldData); }
static ModPlayerData() { EnumTranslator.RegisterEnumFixer( (EnumTranslator translator, EnumTranslator.TranslationMode mode, ModPlayerData data) => { EnumTranslator.FixEnumValues(translator, mode, data.upgrades); EnumTranslator.FixEnumValues(translator, mode, data.availBlueprints); EnumTranslator.FixEnumValues(translator, mode, data.blueprints); EnumTranslator.FixEnumValues(translator, mode, data.blueprintLocks); EnumTranslator.FixEnumValues(translator, mode, data.availUpgrades); EnumTranslator.FixEnumValues(translator, mode, data.upgradeLocks); EnumTranslator.FixEnumValues(translator, mode, data.progress); EnumTranslator.FixEnumValues(translator, mode, data.craftMatCounts); EnumTranslator.FixEnumValues(translator, mode, data.delayedProgress); EnumTranslator.FixEnumValues(translator, mode, data.gadgets); EnumTranslator.FixEnumValues(translator, mode, data.mail); EnumTranslator.FixEnumValues(translator, mode, data.unlockedZoneMaps); }); EnumTranslator.RegisterEnumFixer( (EnumTranslator translator, EnumTranslator.TranslationMode mode, MailV02 data) => { data.mailType = EnumTranslator.TranslateEnum(translator, mode, data.mailType); } ); }
static IdentifiedData() { EnumTranslator.RegisterEnumFixer( (EnumTranslator translator, EnumTranslator.TranslationMode mode, IdentifiedData data) => { EnumTranslator.FixEnumValues(translator, mode, data.data); }); }
static PartialAppearancesData() { PartialData.RegisterPartialData <AppearancesV01>(typeof(PartialAppearancesData)); EnumTranslator.RegisterEnumFixer <PartialAppearancesData>((x, y, z) => { EnumTranslator.FixEnumValues(x, y, z.unlocksCustom); EnumTranslator.FixEnumValues(x, y, z.unlocksPartial); EnumTranslator.FixEnumValues(x, y, z.selections); }); }
public void FixAllEnumValues(EnumTranslator.TranslationMode mode) { enumTranslator?.FixEnumValues(mode, partialData); if (enumTranslator != null) { var newDict = new Dictionary <DataIdentifier, PartialData>(); foreach (var v in partialData) { newDict.Add(v.Key.TranslateWithEnum(enumTranslator, mode), v.Value); } partialData = newDict; } enumTranslator?.FixEnumValues(mode, appearancesData); enumTranslator?.FixEnumValues(mode, ammoDataEntries); foreach (var v in segments) { v.FixAllValues(enumTranslator, mode); } }
public void FixAllValues(EnumTranslator.TranslationMode mode) { Debug.Log("trying to fix " + modid); if (enumTranslator == null) { return; } Debug.Log("going to fix it all"); EnumTranslator.FixEnumValues(enumTranslator, mode, identifiableData); EnumTranslator.FixEnumValues(enumTranslator, mode, playerData); EnumTranslator.FixEnumValues(enumTranslator, mode, customAmmo); }