Example #1
0
        public void PaintPart(IPartScript part, bool flag, int MaterialLevel, int MaterialID, bool paintSymmetricParts)
        {
            if (MaterialLevel == -1)
            {
                for (int i = 0; i < part.Data.MaterialIds.Count; i++)
                {
                    if (part.Data.MaterialIds[i] != MaterialID)
                    {
                        part.PartMaterialScript.SetMaterial(MaterialID, i); flag = true;
                    }
                }
            }
            else if (part.Data.MaterialIds[MaterialLevel] != MaterialID)
            {
                part.PartMaterialScript.SetMaterial(MaterialID, MaterialLevel); flag = true;
            }

            if (paintSymmetricParts)
            {
                foreach (IPartScript item in Symmetry.EnumerateSymmetricPartScripts(part))
                {
                    PaintPart(item, flag, MaterialLevel, MaterialID, false);
                }
            }

            if (flag)
            {
                foreach (PartModifierData modifier in part.Data.Modifiers)
                {
                    ((IDesignerPartModifierData)modifier).DesignerPartProperties.OnPartMaterialsChanged();
                }
            }
        }
        private void DeselectAllParts()
        {
            if (_selectedParts.Count > 0)
            {
                foreach (IPartScript part in _selectedParts)
                {
                    _partHighlighter.RemovePartHighlight(part);
                    foreach (IPartScript SymmetricPart in Symmetry.EnumerateSymmetricPartScripts(part))
                    {
                        _partHighlighter.RemovePartHighlight(SymmetricPart);
                    }
                }

                _selectedParts = new List <IPartScript> ();
                Debug.Log("Deselected All Parts ");
            }
        }
        private void UpdatePartHighlight()
        {
            if (_SelectedParts.Count > 0)
            {
                _PartHighlighter.HighlightColor = new Color(0f, 1f, 0f, 1f);

                foreach (IPartScript part in _SelectedParts)
                {
                    _PartHighlighter.AddPartHighlight(part);
                    foreach (IPartScript SymmetricPart in Symmetry.EnumerateSymmetricPartScripts(part))
                    {
                        _PartHighlighter.AddPartHighlight(SymmetricPart);
                    }
                }
            }
            else
            {
                _PartHighlighter.HighlightColor = _Designer.CraftScript.RootPart.Data.ThemeData.Theme.PartStateColors.Highlighted;
            }
        }