Exemplo n.º 1
0
 private static object GetParameter(ObjectCtrlInfo oci)
 {
     return(oci.guideObject.transformTarget.GetComponent <CharaPoseController>()._boobsEditor);
 }
Exemplo n.º 2
0
 private static bool CheckIntegrity(ObjectCtrlInfo oci, object parameter, object leftValue, object rightValue)
 {
     return(parameter != null);
 }
            /// <summary>
            /// Called by the scene controller, loads animations from the loaded or imported scene
            /// </summary>
            internal void LoadAnimations(int characterDicKey, ReadOnlyDictionary <int, ObjectCtrlInfo> loadedItems)
            {
                try
                {
                    PluginData ExtendedData = ExtendedSave.GetSceneExtendedDataById(PluginNameInternal);

                    //Version 1 save data
                    if (ExtendedData?.data != null && ExtendedData.data.ContainsKey("AnimationInfo"))
                    {
                        List <AnimationControllerInfo> AnimationControllerInfoList = ((object[])ExtendedData.data["AnimationInfo"]).Select(x => AnimationControllerInfo.Unserialize((byte[])x)).ToList();

                        foreach (var AnimInfo in AnimationControllerInfoList)
                        {
                            //See if this is the right character
                            if (AnimInfo.CharDicKey != characterDicKey)
                            {
                                continue;
                            }

                            ObjectCtrlInfo linkedItem = loadedItems[AnimInfo.ItemDicKey];

                            if (AnimInfo.Version.IsNullOrEmpty())
                            {
                                AddLinkV1(AnimInfo.IKPart, linkedItem);
                            }
                            else
                            {
                                AddLink(AnimInfo.IKPart, linkedItem);
                            }
                        }
                    }
                    //Version 2 save data
                    else
                    {
                        var data = GetExtendedData();
                        if (data?.data != null)
                        {
                            if (data.data.TryGetValue("LinksV1", out var loadedLinksV1) && loadedLinksV1 != null)
                            {
                                foreach (var link in (Dictionary <object, object>)loadedLinksV1)
                                {
                                    AddLinkV1((string)link.Key, loadedItems[(int)link.Value]);
                                }
                            }

                            if (data.data.TryGetValue("Links", out var loadedLinks) && loadedLinks != null)
                            {
                                foreach (var link in (Dictionary <object, object>)loadedLinks)
                                {
                                    AddLink((string)link.Key, loadedItems[(int)link.Value]);
                                }
                            }

                            if (data.data.TryGetValue("Eyes", out var loadedEyeLink) && loadedEyeLink != null)
                            {
                                AddEyeLink(loadedItems[(int)loadedEyeLink]);
                            }

                            if (data.data.TryGetValue("Neck", out var loadedNeckLink) && loadedNeckLink != null)
                            {
                                AddNeckLink(loadedItems[(int)loadedNeckLink]);
                            }
                        }
                    }
                    Logger.LogDebug($"Loaded KK_AnimationController animations for character {ChaControl.chaFile.parameter.fullname.Trim()}");
                }
                catch (Exception ex)
                {
                    Logger.Log(BepInEx.Logging.LogLevel.Debug | BepInEx.Logging.LogLevel.Message, "Could not load KK_AnimationController animations.");
                    Logger.LogError(ex.ToString());
                }
            }
 /// <summary>
 /// Add a v1 link. Only ever added by loading card data, new links will never by of this type.
 /// </summary>
 private void AddLinkV1(string selectedGuideObject, ObjectCtrlInfo selectedObject)
 {
     OCIChar.IKInfo ikInfo = OCIChar.listIKTarget.First(x => x.boneObject.name == selectedGuideObject);
     GuideObjectLinksV1[ikInfo] = selectedObject;
 }
Exemplo n.º 5
0
 public Route(ObjectCtrlInfo objctrl) : base(objctrl)
 {
 }
 /// <summary>
 /// Get the ID for the specified ObjectCtrlInfo
 /// </summary>
 /// <param name="oci"></param>
 /// <returns>ID for the specified ObjectCtrlInfo</returns>
 public static int GetObjectID(ObjectCtrlInfo oci) => Studio.Studio.Instance.dicObjectCtrl.First(x => x.Value == oci).Key;
 private static void OCI_OnDelete(ObjectCtrlInfo __instance) => OnObjectBeingDeleted(__instance);
Exemplo n.º 8
0
 /// <summary>
 /// Fired when objects are deleted.
 /// </summary>
 /// <param name="objectCtrlInfo">ObjectCtrlInfo associated with the item being deleted</param>
 protected internal virtual void OnObjectDeleted(ObjectCtrlInfo objectCtrlInfo)
 {
 }
Exemplo n.º 9
0
 public Light(ObjectCtrlInfo objctrl) : base(objctrl)
 {
 }
Exemplo n.º 10
0
 public static bool IsSelectedInWorkarea(this ObjectCtrlInfo objectCtrlInfo)
 {
     return(objectCtrlInfo.treeNodeObject.GetTreeNodeCtrl().CheckSelect(objectCtrlInfo.treeNodeObject));
 }
Exemplo n.º 11
0
 public Prop(ObjectCtrlInfo objctrl) : base(objctrl)
 {
 }
Exemplo n.º 12
0
 public static void PCSSInitialization(ref OCILight __result, OILightInfo _info, ObjectCtrlInfo _parent, TreeNodeObject _parentNode, bool _addInfo, int _initialPosition)
 {
     Graphics.Instance?.LightManager?.Light();
 }
 /// <inheritdoc />
 /// <param name="deletedObject">Object being deleted</param>
 public ObjectDeletedEventArgs(ObjectCtrlInfo deletedObject)
 {
     DeletedObject = deletedObject;
 }
Exemplo n.º 14
0
            private static bool IsCompatibleWithTarget(ObjectCtrlInfo oci)
            {
                CharaPoseController controller;

                return(oci != null && oci.guideObject != null && oci.guideObject.transformTarget != null && (controller = oci.guideObject.transformTarget.GetComponent <CharaPoseController>()) != null && controller._target.isFemale);
            }
 private static void OCI_OnVisible(ObjectCtrlInfo __instance, bool _visible) => OnObjectVisibilityToggled(__instance, _visible);
Exemplo n.º 16
0
 public NeoOCI(ObjectCtrlInfo objctrl)
 {
     this.objctrl = objctrl;
     return;
 }
Exemplo n.º 17
0
 /// <inheritdoc />
 /// <param name="toggledObject">Object being toggled</param>
 /// <param name="visible">Visibility of the object</param>
 public ObjectVisibilityToggledEventArgs(ObjectCtrlInfo toggledObject, bool visible)
 {
     ToggledObject = toggledObject;
     Visible       = visible;
 }
Exemplo n.º 18
0
 /// <summary>
 /// Fired when objects have their visibility toggled.
 /// </summary>
 /// <param name="objectCtrlInfo">ObjectCtrlInfo associated with the item being toggled</param>
 /// <param name="visible">Visibility of the object</param>
 protected internal virtual void OnObjectVisibilityToggled(ObjectCtrlInfo objectCtrlInfo, bool visible)
 {
 }
Exemplo n.º 19
0
        public void MoveObjectHere(ObjectCtrlInfo oci)
        {
            Vector3 newPos = VR.Camera.Head.TransformPoint(0f, 0f, 0.2f);

            helper.MoveObject(oci, newPos, keepY);
        }