예제 #1
0
    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
    }
예제 #2
0
 public static bool IsDynamicMaterialType(MegaMeshGroup group)
 {
     return(IsDynamicMaterialType(group.MaterialType));
 }
예제 #3
0
    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;
        }
    }