static void ChooseDoll(UnitEntityData unitEntityData) { if (!unitEntityData.IsMainCharacter && !unitEntityData.IsCustomCompanion() && GUILayout.Button("Destroy Doll", GUILayout.Width(DefaultLabelWidth))) { unitEntityData.Descriptor.Doll = null; unitEntityData.Descriptor.ForcceUseClassEquipment = false; CharacterManager.RebuildCharacter(unitEntityData); } var doll = DollResourcesManager.GetDoll(unitEntityData); var race = doll.Race; var gender = unitEntityData.Gender; CustomizationOptions customizationOptions = gender != Gender.Male ? race.FemaleOptions : race.MaleOptions; ChooseRace(unitEntityData, doll); ChooseEEL(unitEntityData, doll, "Face", customizationOptions.Heads, doll.Head, (EquipmentEntityLink ee) => doll.SetHead(ee)); ChooseEEL(unitEntityData, doll, "Hair", customizationOptions.Hair, doll.Hair, (EquipmentEntityLink ee) => doll.SetHair(ee)); if (customizationOptions.Beards.Length > 0) { ChooseEEL(unitEntityData, doll, "Beards", customizationOptions.Beards, doll.Beard, (EquipmentEntityLink ee) => doll.SetBeard(ee)); } if (BlueprintRoot.Instance.DlcSettings.Tieflings.Enabled) { if (customizationOptions.Horns.Length > 0) { ChooseEEL(unitEntityData, doll, "Horns", customizationOptions.Horns, doll.Horn, (EquipmentEntityLink ee) => doll.SetHorn(ee)); } } ChooseRamp(unitEntityData, doll, "Hair Color", doll.GetHairRamps(), doll.HairRampIndex, (int index) => doll.SetHairColor(index)); ChooseRamp(unitEntityData, doll, "Skin Color", doll.GetSkinRamps(), doll.SkinRampIndex, (int index) => doll.SetSkinColor(index)); if (BlueprintRoot.Instance.DlcSettings.Tieflings.Enabled) { ChooseRamp(unitEntityData, doll, "Horn Color", doll.GetHornsRamps(), doll.HornsRampIndex, (int index) => doll.SetHornsColor(index)); } ChooseRamp(unitEntityData, doll, "Primary Outfit Color", doll.GetOutfitRampsPrimary(), doll.EquipmentRampIndex, (int index) => doll.SetEquipColors(index, doll.EquipmentRampIndexSecondary)); ChooseRamp(unitEntityData, doll, "Secondary Outfit Color", doll.GetOutfitRampsSecondary(), doll.EquipmentRampIndexSecondary, (int index) => doll.SetEquipColors(doll.EquipmentRampIndex, index)); ChooseVisualPreset(unitEntityData, doll, "Body Type", doll.Race.Presets, doll.RacePreset); if (unitEntityData.Descriptor.Doll.LeftHanded && GUILayout.Button("Set Right Handed", GUILayout.Width(DefaultLabelWidth))) { unitEntityData.Descriptor.LeftHandedOverride = false; doll.SetLeftHanded(false); unitEntityData.Descriptor.Doll = doll.CreateData(); ViewManager.ReplaceView(unitEntityData, null); unitEntityData.View.HandsEquipment.HandleEquipmentSetChanged(); } else if (!unitEntityData.Descriptor.Doll.LeftHanded && GUILayout.Button("Set Left Handed", GUILayout.Width(DefaultLabelWidth))) { unitEntityData.Descriptor.LeftHandedOverride = true; doll.SetLeftHanded(true); unitEntityData.Descriptor.Doll = doll.CreateData(); ViewManager.ReplaceView(unitEntityData, null); unitEntityData.View.HandsEquipment.HandleEquipmentSetChanged(); } ChoosePortrait(unitEntityData); if (unitEntityData.IsMainCharacter || unitEntityData.IsCustomCompanion()) { ChooseAsks(unitEntityData); } }
static void AddOptions(CustomizationOptions options, string oldAssetID) { var hair = bundle.LoadAsset <EquipmentEntity>("Assets/Race/EE_Hair_HairLongBangs_M_AS.asset"); var head = bundle.LoadAsset <EquipmentEntity>("Assets/Race/EE_Head_Face01_M_HM.asset"); options.Hair = new EquipmentEntityLink[] { BlueprintUtil.MakeEquipmentEntityLink(hair, new Guid(oldAssetID + "Hair").ToString()) }; options.Heads = new EquipmentEntityLink[] { BlueprintUtil.MakeEquipmentEntityLink(head, new Guid(oldAssetID + "Head").ToString()) }; Main.DebugLog("Added Hair"); }
static CustomizationOptions CopyCustomisationOptions(CustomizationOptions orignal, string prevGUID) { var newOptions = new CustomizationOptions(); newOptions.Beards = CopyLinks(orignal.Beards, prevGUID + "BeardSalt"); newOptions.Heads = CopyLinks(orignal.Heads, prevGUID + "HeadSalt"); newOptions.Eyebrows = CopyLinks(orignal.Eyebrows, prevGUID + "EyebrowSalt"); newOptions.Hair = CopyLinks(orignal.Hair, prevGUID + "HairSalt"); return(newOptions); }
static void ChooseDoll(UnitEntityData unitEntityData) { try { if (!unitEntityData.IsMainCharacter && !unitEntityData.IsCustomCompanion() && GUILayout.Button("Destroy Doll", GUILayout.Width(DefaultLabelWidth))) { unitEntityData.Descriptor.Doll = null; unitEntityData.Descriptor.ForcceUseClassEquipment = false; CharacterManager.RebuildCharacter(unitEntityData); } var doll = DollResourcesManager.GetDoll(unitEntityData); var race = doll.Race; var gender = unitEntityData.Gender; CustomizationOptions customizationOptions = gender != Gender.Male ? race.FemaleOptions : race.MaleOptions; ChooseRace(unitEntityData, doll); ChooseEEL(unitEntityData, doll, "Face", customizationOptions.Heads, doll.Head.m_Link, (EquipmentEntityLink ee) => doll.SetHead(ee)); ChooseEEL(unitEntityData, doll, "Hair", customizationOptions.Hair, doll.Hair.m_Link, (EquipmentEntityLink ee) => doll.SetHair(ee)); if (customizationOptions.Beards.Length > 0) { ChooseEEL(unitEntityData, doll, "Beards", customizationOptions.Beards, doll.Beard.m_Link, (EquipmentEntityLink ee) => doll.SetBeard(ee)); } if (customizationOptions.Horns.Length > 0) { ChooseEEL(unitEntityData, doll, "Horns", customizationOptions.Horns, doll.Horn.m_Link, (EquipmentEntityLink ee) => doll.SetHorn(ee)); } ChooseRamp(unitEntityData, doll, "Hair Color", doll.GetHairRamps(), doll.HairRampIndex, (int index) => doll.SetHairColor(index)); ChooseRamp(unitEntityData, doll, "Skin Color", doll.GetSkinRamps(), doll.SkinRampIndex, (int index) => doll.SetSkinColor(index)); ChooseRamp(unitEntityData, doll, "Horn Color", doll.GetHornsRamps(), doll.HornsRampIndex, (int index) => doll.SetHornsColor(index)); ChooseRamp(unitEntityData, doll, "Primary Outfit Color", doll.GetOutfitRampsPrimary(), doll.EquipmentRampIndex, (int index) => doll.SetEquipColors(index, doll.EquipmentRampIndexSecondary)); ChooseRamp(unitEntityData, doll, "Secondary Outfit Color", doll.GetOutfitRampsSecondary(), doll.EquipmentRampIndexSecondary, (int index) => doll.SetEquipColors(doll.EquipmentRampIndex, index)); ReferenceArrayProxy <BlueprintRaceVisualPreset, BlueprintRaceVisualPresetReference> presets = doll.Race.Presets; BlueprintRaceVisualPreset racePreset = doll.RacePreset; /*if (unitEntityData.Descriptor.LeftHandedOverride == true && GUILayout.Button("Set Right Handed", GUILayout.Width(DefaultLabelWidth))) * { * unitEntityData.Descriptor.LeftHandedOverride = false; * unitEntityData.Descriptor.Doll = doll.CreateData(); * ViewManager.ReplaceView(unitEntityData, null); * unitEntityData.View.HandsEquipment.HandleEquipmentSetChanged(); * } * else if (unitEntityData.Descriptor.LeftHandedOverride == false && GUILayout.Button("Set Left Handed", GUILayout.Width(DefaultLabelWidth))) * { * unitEntityData.Descriptor.LeftHandedOverride = true; * unitEntityData.Descriptor.Doll = doll.CreateData(); * ViewManager.ReplaceView(unitEntityData, null); * unitEntityData.View.HandsEquipment.HandleEquipmentSetChanged(); * }*/ ChoosePortrait(unitEntityData); if (unitEntityData.IsMainCharacter || unitEntityData.IsCustomCompanion()) { ChooseAsks(unitEntityData); } } catch (Exception e) { Main.logger.Log(e.ToString()); } }
static void BuildLookup() { m_lookup = new Dictionary <string, EquipmentEntityInfo>();; var races = BluePrintThing.GetBlueprints <BlueprintRace>(); var racePresets = BluePrintThing.GetBlueprints <BlueprintRaceVisualPreset>(); var classes = BluePrintThing.GetBlueprints <BlueprintCharacterClass>(); foreach (var race in races) { foreach (var gender in new Gender[] { Gender.Male, Gender.Female }) { CustomizationOptions customizationOptions = gender != Gender.Male ? race.FemaleOptions : race.MaleOptions; AddLinks(customizationOptions.Heads, "Head", race.RaceId, gender); AddLinks(customizationOptions.Hair, "Hair", race.RaceId, gender); AddLinks(customizationOptions.Beards, "Beards", race.RaceId, gender); AddLinks(customizationOptions.Eyebrows, "Eyebrows", race.RaceId, gender); } } foreach (var racePreset in racePresets) { foreach (var gender in new Gender[] { Gender.Male, Gender.Female }) { var raceSkin = racePreset.Skin; if (raceSkin == null) { continue; } AddLinks(raceSkin.GetLinks(gender, racePreset.RaceId), "Skin", racePreset.RaceId, gender); } } foreach (var _class in classes) { foreach (var race in races) { foreach (var gender in new Gender[] { Gender.Male, Gender.Female }) { AddLinks(_class.GetClothesLinks(gender, race.RaceId).ToArray(), "ClassOutfit", race.RaceId, gender); } } } var gear = BluePrintThing.GetBlueprints <KingmakerEquipmentEntity>(); foreach (var race in races) { foreach (var gender in new Gender[] { Gender.Male, Gender.Female }) { foreach (var kee in gear) { AddLinks(kee.GetLinks(gender, race.RaceId), "Armor", race.RaceId, gender); } } } blueprintBuffs = BluePrintThing.GetBlueprints <BlueprintBuff>().ToArray(); }
static private void Init() { var races = ResourcesLibrary.GetBlueprints <BlueprintRace>(); var racePresets = ResourcesLibrary.GetBlueprints <BlueprintRaceVisualPreset>(); var classes = ResourcesLibrary.GetBlueprints <BlueprintCharacterClass>(); foreach (var race in races) { foreach (var gender in new Gender[] { Gender.Male, Gender.Female }) { CustomizationOptions customizationOptions = gender != Gender.Male ? race.FemaleOptions : race.MaleOptions; AddLinks(head, customizationOptions.Heads); AddLinks(hair, customizationOptions.Hair); AddLinks(beard, customizationOptions.Beards); AddLinks(eyebrows, customizationOptions.Eyebrows); AddLinks(tails, customizationOptions.TailSkinColors); AddLinks(horns, customizationOptions.Horns); } } foreach (var racePreset in racePresets) { foreach (var gender in new Gender[] { Gender.Male, Gender.Female }) { var raceSkin = racePreset.Skin; if (raceSkin == null) { continue; } AddLinks(skin, raceSkin.GetLinks(gender, racePreset.RaceId)); } } foreach (var _class in classes) { foreach (var race in races) { foreach (var gender in new Gender[] { Gender.Male, Gender.Female }) { AddLinks(classOutfits, _class.GetClothesLinks(gender, race.RaceId).ToArray()); } } } foreach (var bp in ResourcesLibrary.GetBlueprints <BlueprintPortrait>()) { //Note there are two wolf portraits if (bp == BlueprintRoot.Instance.CharGen.CustomPortrait || bp.Data.IsCustom) { continue; } if (!portraits.ContainsKey(bp.name)) { portraits.Add(bp.name, bp); } } customPortraits.AddRange(CustomPortraitsManager.Instance.GetExistingCustomPortraitIds()); foreach (var bp in ResourcesLibrary.GetBlueprints <BlueprintUnitAsksList>()) { var component = bp.GetComponent <UnitAsksComponent>(); if (component == null) { continue; } if (!component.Selected.HasBarks && bp.name != "PC_None_Barks") { continue; } asks.Add(bp.name, bp); } loaded = true; }