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; } }