Example #1
0
 private void OnEnable()
 {
     attac             = serializedObject.FindProperty("Attachments");
     positions         = serializedObject.FindProperty("Positions");
     camor             = serializedObject.FindProperty("CamoRender");
     customizerManager = FindObjectOfType <bl_CustomizerManager>();
 }
Example #2
0
 /// <summary>
 ///
 /// </summary>
 void Awake()
 {
     Button  = GetComponentInChildren <bl_AttachmentsButtons>();
     Manager = FindObjectOfType <bl_CustomizerManager>();
     Positions.Init();
     Button.Init(this);
     Button.Active(Customize);
     WeaponInfo = bl_CustomizerData.Instance.GetWeapon(WeaponName);
     rootx      = -transform.eulerAngles.y;
     rooty      = transform.eulerAngles.x;
     m_Camera   = Camera.main;
 }
        public void OnSelectCamo()
        {
            bl_CustomizerManager c = FindObjectOfType <bl_CustomizerManager>();

            c.OnSelectCamo(ID);
            Button[] bt = transform.parent.GetComponentsInChildren <Button>();
            for (int i = 0; i < bt.Length; i++)
            {
                bt[i].interactable = true;
                bt[i].OnDeselect(null);
            }
            GetComponentInChildren <Button>().interactable = false;
        }
Example #4
0
        //

        private void OnEnable()
        {
            script = (bl_CustomizerWeapon)target;
            attac  = serializedObject.FindProperty("Attachments");
            camor  = serializedObject.FindProperty("CamoRender");
            if (string.IsNullOrEmpty(script.WeaponName))
            {
                script.WeaponName = bl_CustomizerData.Instance.Weapons[script.WeaponID].WeaponName;
            }
            weaponName        = script.WeaponName;
            script.isFPWeapon = script.GetComponent <bl_Gun>() != null;
            customizerManager = FindObjectOfType <bl_CustomizerManager>();
        }
Example #5
0
        void SetupPlayerWeapons()
        {
            bl_Gun gun = script.GetComponent <bl_Gun>();

            if (gun != null)
            {
                int gunID = gun.GunID;
                script.WeaponID   = bl_CustomizerData.Instance.GetCustomizerID(gunID);
                script.WeaponName = bl_CustomizerData.Instance.Weapons[script.WeaponID].WeaponName;
                bl_CustomizerManager cm = FindObjectOfType <bl_CustomizerManager>();
                if (cm != null)
                {
                    bl_Customizer[] all = cm.transform.GetComponentsInChildren <bl_Customizer>(true);
                    for (int i = 0; i < all.Length; i++)
                    {
                        if (all[i].WeaponID == script.WeaponID)
                        {
                            _CustomizerWeapon  = all[i];
                            customizerSelected = i;
                        }
                    }
                    if (_CustomizerWeapon != null)
                    {
                        script.BuildAttachments();
                        script.CamoRender.MaterialID = _CustomizerWeapon.CamoRender.MaterialID;
                        Mesh         mesh = _CustomizerWeapon.CamoRender.Render.GetComponent <MeshFilter>().sharedMesh;
                        MeshFilter[] allm = script.transform.GetComponentsInChildren <MeshFilter>(true);
                        for (int i = 0; i < allm.Length; i++)
                        {
                            if (allm[i].sharedMesh == mesh)
                            {
                                script.CamoRender.Render = allm[i].GetComponent <MeshRenderer>();
                                _TargetMesh = script.CamoRender.Render.transform;
                            }
                        }
                    }
                    else
                    {
                        Debug.LogWarning("Can't find the Customizer weapon with GunID: " + gunID);
                    }
                }
            }
            else
            {
                Debug.LogWarning("You only can setup customizer weapon from the FPWeapon");
            }
        }
        /// <summary>
        ///
        /// </summary>
        public void OnSelect()
        {
            if (lockedStatus != 0 && lockedStatus != 3)
            {
                return;
            }
            if (AllButtons == null || AllButtons.Length <= 0)
            {
                AllButtons = transform.parent.GetComponentsInChildren <bl_CustomizerInfoButton>();
            }

            bl_CustomizerManager c = FindObjectOfType <bl_CustomizerManager>();

            c.showCustomizerWeapon(customizerWeapon);

            foreach (bl_CustomizerInfoButton b in AllButtons)
            {
                b.Deselect();
            }
            button.interactable = false;
        }
Example #7
0
        public override void OnInspectorGUI()
        {
            GUILayout.BeginVertical("box");
            EditorGUI.BeginChangeCheck();
            GUILayout.BeginHorizontal("box");
            script.WeaponID = EditorGUILayout.Popup("Customizer ID", script.WeaponID, bl_CustomizerData.Instance.GetWeaponStringArray(), EditorStyles.toolbarDropDown);
            GUILayout.Space(5);
            if (GUILayout.Button("Refresh", EditorStyles.toolbarButton, GUILayout.Width(100)))
            {
                script.RefreshAttachments();
            }
            GUILayout.EndHorizontal();
            script.isFPWeapon   = EditorGUILayout.ToggleLeft("is First Person Weapon", script.isFPWeapon, EditorStyles.toolbarButton);
            script.ApplyOnStart = EditorGUILayout.ToggleLeft("Apply On Start", script.ApplyOnStart, EditorStyles.toolbarButton);
            if (GUI.changed)
            {
                script.WeaponName = bl_CustomizerData.Instance.Weapons[script.WeaponID].WeaponName;
                if (script.WeaponName != weaponName)
                {
                    script.BuildAttachments();
                    weaponName = script.WeaponName;
                }
            }

            serializedObject.Update();
            GUILayout.BeginHorizontal("box");
            GUILayout.Space(10);
            EditorGUILayout.PropertyField(camor, true);
            GUILayout.EndHorizontal();
            GUILayout.BeginHorizontal("box");
            GUILayout.Space(10);
            EditorGUILayout.PropertyField(attac, true);
            GUILayout.EndHorizontal();
            serializedObject.ApplyModifiedProperties();
            GUILayout.EndVertical();

            GUILayout.BeginHorizontal("box");
            GUI.enabled = customizerManager != null && script.isFPWeapon;
            if (GUILayout.Button("Import", EditorStyles.toolbarButton, GUILayout.Width(100)))
            {
                openImportMenu = !openImportMenu;
                if (openImportMenu)
                {
                    //ActiveEditorTracker.sharedTracker.isLocked = openImportMenu;

                    allCustomizers.Clear();
                    bl_CustomizerManager cm = FindObjectOfType <bl_CustomizerManager>();
                    if (cm != null)
                    {
                        bl_Customizer[] all = cm.transform.GetComponentsInChildren <bl_Customizer>(true);
                        for (int i = 0; i < all.Length; i++)
                        {
                            allCustomizers.Add(all[i].gameObject.name, all[i]);
                            if (all[i].WeaponID == script.WeaponID)
                            {
                                _CustomizerWeapon  = all[i];
                                customizerSelected = i;
                            }
                        }
                        if (script.CamoRender.Render == null)
                        {
                            SetupPlayerWeapons();
                        }
                    }
                }
            }
            GUILayout.Space(5);
            if (GUILayout.Button("Update Attachments", EditorStyles.toolbarButton, GUILayout.Width(200)))
            {
                UpdateAttachemtns();
            }
            GUILayout.EndHorizontal();
            GUI.enabled = true;

            if (openImportMenu)
            {
                GUILayout.BeginVertical("box");
                if (script.CamoRender.Render == null)
                {
                    if (allCustomizers.Count > 0)
                    {
                        if (GUILayout.Button("Setup FP and TP Weapons"))
                        {
                            SetupPlayerWeapons();
                        }
                    }
                    else
                    {
                        EditorGUILayout.HelpBox("Can't find any customizer weapon in the scene, be sure you're in the Customizer scene", MessageType.Warning);
                    }
                }
                else
                {
                    if (allCustomizers.Count > 0)
                    {
                        customizerSelected = EditorGUILayout.Popup("Customizer Weapon", customizerSelected, allCustomizers.Keys.ToArray());
                        _CustomizerWeapon  = allCustomizers.Values.ElementAt(customizerSelected);
                    }
                    else
                    {
                        EditorGUILayout.HelpBox("Can't find any customizer weapon in the scene, be sure you're in the Customizer scene", MessageType.Warning);
                    }
                    if (_CustomizerWeapon != null && _CustomizerWeapon.gameObject.name != "***TEMPLATE***")
                    {
                        if (allCustomizersMeshs.Count <= 0)
                        {
                            MeshRenderer[] all = _CustomizerWeapon.Positions.ModelParent.GetComponentsInChildren <MeshRenderer>(true);
                            for (int i = 0; i < all.Length; i++)
                            {
                                allCustomizersMeshs.Add(all[i].name, all[i].transform);
                            }
                        }
                        else
                        {
                            _CustomizerMesh = _CustomizerWeapon.CamoRender.Render.transform;
                            _CustomizerMesh = EditorGUILayout.ObjectField("Customizer Mesh", _CustomizerMesh, typeof(Transform), true) as Transform;
                            if (_CustomizerMesh != null)
                            {
                                if (_TargetMesh == null)
                                {
                                    if (script.CamoRender.Render != null)
                                    {
                                        _TargetMesh = script.CamoRender.Render.transform;
                                    }
                                    else
                                    {
                                        if (GUILayout.Button("Search Mesh"))
                                        {
                                            MeshFilter[] all = script.transform.GetComponentsInChildren <MeshFilter>(true);
                                            Mesh         m   = _CustomizerMesh.GetComponent <MeshFilter>().sharedMesh;
                                            for (int i = 0; i < all.Length; i++)
                                            {
                                                if (all[i].sharedMesh == m)
                                                {
                                                    _TargetMesh = all[i].transform;
                                                }
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    _TargetMesh = EditorGUILayout.ObjectField("Target Weapon Mesh", _TargetMesh, typeof(Transform), true) as Transform;
                                }
                            }
                        }
                    }

                    GUI.enabled = (_CustomizerMesh != null && _CustomizerWeapon != null && _TargetMesh != null);
                    if (GUILayout.Button("Transfer", EditorStyles.toolbarButton, GUILayout.Width(100)))
                    {
                        Transfer();
                    }
                    GUI.enabled = true;
                }
                GUILayout.EndVertical();
            }

            EditorGUI.EndChangeCheck();
            if (GUI.changed)
            {
                EditorUtility.SetDirty(target);
            }
        }