Inheritance: MonoBehaviour
Example #1
0
        void UpdateMaterials(SceneData scene)
        {
            int numMaterials = scene.numMaterials;

            bool needsUpdate = false;

            if (m_materialList.Count != numMaterials)
            {
                needsUpdate = true;
            }
            else
            {
                for (int i = 0; i < numMaterials; ++i)
                {
                    var src = scene.GetMaterial(i);
                    var dst = m_materialList[i];
                    if (src.id != dst.id || src.name != dst.name || src.color != dst.color)
                    {
                        needsUpdate = true;
                        break;
                    }
                }
            }
            if (!needsUpdate)
            {
                return;
            }

            var newlist = new List <MaterialHolder>();

            for (int i = 0; i < numMaterials; ++i)
            {
                var src = scene.GetMaterial(i);
                var id  = src.id;
                var dst = m_materialList.Find(a => a.id == id);
                if (dst == null)
                {
                    dst    = new MaterialHolder();
                    dst.id = id;
#if UNITY_EDITOR
                    var tmp = Instantiate(GetDefaultMaterial());
                    tmp.name     = src.name;
                    tmp.color    = src.color;
                    dst.material = tmp;
#endif
                }
                dst.name  = src.name;
                dst.color = src.color;
                if (dst.material.name == src.name)
                {
                    dst.material.color = dst.color;
                }
                newlist.Add(dst);
            }
            m_materialList = newlist;
            ReassignMaterials();
        }
Example #2
0
 internal MaterialTableEventArgs(int docId, int eventType, int index, IntPtr pOldSettings)
 {
     m_document_id    = docId;
     m_event_type     = (MaterialTableEventType)eventType;
     m_material_index = index;
     if (pOldSettings != IntPtr.Zero)
     {
         m_holder = new MaterialHolder(pOldSettings, true);
     }
 }
Example #3
0
    void SortEffects()
    {
        List <Material> SortedList = new List <Material>();
        MaterialHolder  myTarget   = (MaterialHolder)target;

        for (int i = 0; i < myTarget.EffectsTrail.Count; ++i)
        {
            SortedList.Add(myTarget.EffectsTrail.Find(x => x.name == ((MaterialHolder.Effects)i).ToString()));
        }
        myTarget.EffectsTrail.Clear();
        myTarget.EffectsTrail.AddRange(SortedList);
    }
Example #4
0
 void AutoChangeMaterial(int index)
 {
     Renderer[] rs = gameObject.GetComponentsInChildren <Renderer>();
     for (int i = 0; i < rs.Length; i++)
     {
         Renderer       r  = rs[i];
         MaterialHolder mh = r.gameObject.GetComponent <MaterialHolder>();
         if (mh != null)
         {
             r.material = mh.m_materials[index % mh.m_materials.Count];
         }
     }
 }
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //	* New Method: Receive All Materials
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    protected void ReceiveAllMaterials(Transform CurrentChild)
    {
        foreach (Transform Child in CurrentChild)
        {
            ReceiveAllMaterials(Child);
        }

        if (CurrentChild.GetComponent <Renderer>() != null)
        {
            MaterialHolder MH = new MaterialHolder();
            MH.MaterialRenderer       = CurrentChild.GetComponent <Renderer>();
            MH.MaterialOriginalColour = CurrentChild.GetComponent <Renderer>().sharedMaterial.color;
            m_FlashEffectStruct.lMaterialsList.Add(MH);
        }
    }
Example #6
0
 /**
  * Switchs over available materials at runtime and in editor depending on the type of the bridge
  * **/
 void Update()
 {
     Bridge.BridgeType newBridgeType = this.gameObject.GetComponent <Bridge>().m_type;
     if (m_previousType != newBridgeType)
     {
         m_previousType = newBridgeType;
         MaterialHolder materialHolder = GetComponent <MaterialHolder>();
         MeshRenderer   meshRenderer   = GetComponent <MeshRenderer>();
         if (newBridgeType == Bridge.BridgeType.Completed || newBridgeType == Bridge.BridgeType.Spreading)
         {
             meshRenderer.sharedMaterial = materialHolder.GetMaterialAtIndex(0); //white texture
         }
         else if (newBridgeType == Bridge.BridgeType.Faded)
         {
             meshRenderer.sharedMaterial = materialHolder.GetMaterialAtIndex(1); //white texture with 0.12f opacity
         }
         else if (newBridgeType == Bridge.BridgeType.TargetIndicator)
         {
             meshRenderer.sharedMaterial = materialHolder.GetMaterialAtIndex(2); //red texture
         }
     }
 }
Example #7
0
    void Init(Fractal parent, int index)
    {
        this.meshes         = parent.meshes;
        this.mats           = parent.mats;
        this.maxDepth       = parent.maxDepth;
        this.perfectRate    = parent.perfectRate;
        this.maxRotateSpeed = parent.maxRotateSpeed;
        this.maxTwistAngle  = parent.maxTwistAngle;
        this.useRotation    = parent.useRotation;
        this.depth          = parent.depth + 1;
        this.generationType = parent.generationType;

        this.transform.SetParent(parent.transform);

        this.childScaler             = parent.childScaler;
        this.transform.localScale    = Vector3.one * childScaler;
        this.transform.localPosition = childGroups[index].direction * (0.5f + childScaler / 2f);                //note the 0.5f
        this.transform.localRotation = childGroups[index].orientation;

        this.rotateSpeed = Random.Range(0f, maxRotateSpeed);
        this.transform.Rotate(Random.Range(-maxTwistAngle, maxTwistAngle), 0f, 0f);
    }
	void Update () {
		if (Util.hit != null) {
			if ((tempScheme = Util.hit.GetComponent<WorkbenchScheme>()) != null) {
				if (hoverScheme == null || (hoverScheme != tempScheme)) {
					hoverScheme = tempScheme;
					itemDescriptor.showDescription(hoverScheme.getItem());
					hoverScheme.setHover(true);
				}
			} else if ((tempHolder = Util.hit.GetComponent<MaterialHolder>()) != null) {
				if (hoverHolder == null || (hoverHolder != tempHolder)) {
					hoverHolder = tempHolder;
					itemDescriptor.showDescription(hoverHolder.getItem());
				}
			} else {
				if (hoverScheme != null) {
					if (!hoverScheme.isChosed()) { hoverScheme.setNormal(); }
					hoverScheme = null;
				}
				if (tempScheme != null && !tempScheme.isChosed()) { tempScheme.setNormal(); }
				if (hoverHolder != null) { hoverHolder = null; }
				if (itemDescriptor.isOnScreen()) { itemDescriptor.hideDescription(); }
			}

		} else {
			if (hoverScheme != null) {
				if (!hoverScheme.isChosed()) { hoverScheme.setNormal(); }
				hoverScheme = null;
			}
			if (hoverHolder != null) { hoverHolder = null; }
			if (tempScheme != null && !tempScheme.isChosed()) { tempScheme.setNormal(); }
			if (itemDescriptor.isOnScreen()) { itemDescriptor.hideDescription(); }
		}
		if (Input.GetMouseButtonDown(0) && hoverScheme != null && !hoverScheme.isChosed()) {
			chooseScheme(hoverScheme);
		}
	}
Example #9
0
        int GetMaterialIndex(Material mat)
        {
            if (mat == null)
            {
                return(-1);
            }

            for (int i = 0; i < m_materialList.Count; ++i)
            {
                if (m_materialList[i].material == mat)
                {
                    return(i);
                }
            }

            int ret = m_materialList.Count;
            var tmp = new MaterialHolder();

            tmp.name     = mat.name;
            tmp.material = mat;
            tmp.id       = ret + 1;
            m_materialList.Add(tmp);
            return(ret);
        }
Example #10
0
 private void Start()
 {
     MH = this;
 }
Example #11
0
        MaterialHolder FindOrCreateMaterial(Texture2D texture, bool resolution)
        {
            foreach (MaterialHolder holder in materials)
            {
                if (holder.Material.Texture2D == texture && holder.Material.resolution == resolution)
                    return holder;
            }

            MaterialHolder result = new MaterialHolder();
            result.Material.Texture2D = texture;
            result.Material.resolution = resolution;
            materials.Add(result);
            return result;
        }
Example #12
0
        void BuildMaterial(MaterialHolder holder, GraphicsDevice graphicsDevice)
        {
            Material m = holder.Material;
            m.GraphicsDevice = graphicsDevice;
            m.VertexDeclaration = new VertexDeclaration(graphicsDevice, VertexPositionNormalTexture.VertexElements);
            m.Effect = new BasicEffect(graphicsDevice, null);
            if(m.resolution)
                m.Effect.DiffuseColor = new Vector3(255, 255, 0);
            else
                m.Effect.DiffuseColor = new Vector3(255, 255, 255);

            m.Effect.AmbientLightColor = new Vector3(0, 0, 0);

            m.PrimitiveType = PrimitiveType.TriangleList;

            m.VertexStride = m.VertexDeclaration.GetVertexStrideSize(0);
            m.VertexCount = holder.Vertices.Count;
            m.IndexCount = holder.Indices.Count;
            m.PrimitiveCount = m.IndexCount / 3;

            m.VertexBuffer = new VertexBuffer(graphicsDevice, typeof(VertexPositionNormalTexture), m.VertexCount, BufferUsage.None);
            m.VertexBuffer.SetData(holder.Vertices.ToArray());

            m.IndexBuffer = new IndexBuffer(graphicsDevice, typeof(int), m.IndexCount, BufferUsage.None);
            m.IndexBuffer.SetData(holder.Indices.ToArray());
        }
Example #13
0
    private void Start()
    {
        ServiceProvider.Instance.DevConsole.RegisterCommand("AdamsModActivate", ActivateAdamsMod);

        materialHolder = gameObject.GetComponent <MaterialHolder>();
    }