private static void CreateNewGroupFor(MegaMeshComponent component, bool AddImmediate = false) { MegaMeshGroup newgroup = Object.Instantiate(Prefabs.CombinedMeshGroup, Transforms.MegaMeshParent).AddComponent <MegaMeshGroup>(); newgroup.MaterialType = component.MaterialType; // add newgroup to the appropriate list inside the appropriate dictionary. If the appropriate list doesn't exist, create it if (component.MaterialType == MaterialType.CircuitBoard) { if (!BoardMegaMeshGroups.ContainsKey(component.Color)) { BoardMegaMeshGroups.Add(component.Color, new HashSet <MegaMeshGroup>()); } BoardMegaMeshGroups[component.Color].Add(newgroup); newgroup.Renderer.material = Materials.BoardOfColor(component.Color); } else if (component.MaterialType == MaterialType.SolidColor) { if (!SolidColorMegaMeshGroups.ContainsKey(component.Color)) { SolidColorMegaMeshGroups.Add(component.Color, new HashSet <MegaMeshGroup>()); } SolidColorMegaMeshGroups[component.Color].Add(newgroup); newgroup.Renderer.material = Materials.SolidColor(component.Color); } else { SetNonColorableGroupMaterial(newgroup); if (!StandardizedMegaMeshGroups.ContainsKey(component.MaterialType)) { StandardizedMegaMeshGroups.Add(component.MaterialType, new HashSet <MegaMeshGroup>()); } StandardizedMegaMeshGroups[component.MaterialType].Add(newgroup); } newgroup.AddComponent(component, AddImmediate); // add the component to the new group }
public static bool IsDynamicMaterialType(MegaMeshGroup group) { return(IsDynamicMaterialType(group.MaterialType)); }
public static void SetNonColorableGroupMaterial(MegaMeshGroup group) { switch (group.MaterialType) { case MaterialType.CircuitOn: group.Renderer.material = Materials.CircuitOn; break; case MaterialType.CircuitOff: group.Renderer.material = Materials.CircuitOff; break; case MaterialType.DisplayOff: group.Renderer.material = Materials.DisplayOff; break; case MaterialType.DisplayRed: group.Renderer.material = Materials.DisplayRed; break; case MaterialType.DisplayGreen: group.Renderer.material = Materials.DisplayGreen; break; case MaterialType.DisplayBlue: group.Renderer.material = Materials.DisplayBlue; break; case MaterialType.DisplayYellow: group.Renderer.material = Materials.DisplayYellow; break; case MaterialType.DisplayOrange: group.Renderer.material = Materials.DisplayOrange; break; case MaterialType.DisplayPurple: group.Renderer.material = Materials.DisplayPurple; break; case MaterialType.DisplayWhite: group.Renderer.material = Materials.DisplayWhite; break; case MaterialType.DisplayCyan: group.Renderer.material = Materials.DisplayCyan; break; case MaterialType.NoisemakerOn: group.Renderer.material = Materials.NoisemakerOn; break; case MaterialType.NoisemakerOff: group.Renderer.material = Materials.NoisemakerOff; break; case MaterialType.SnappingPeg: group.Renderer.material = Materials.SnappingPeg; break; } }