Esempio n. 1
0
        public static void OnLayerUsageFlagsChanged(ChiselBrushMaterial brushMaterial, LayerUsageFlags prevValue, LayerUsageFlags value)
        {
            if (!registeredLookup.Contains(brushMaterial) || (prevValue == value))
            {
                return;
            }

            OnBrushMaterialChanged?.Invoke(brushMaterial);
        }
        public static void OnSetDirty(ChiselBrushMaterial brushMaterial)
        {
            if (!registeredLookup.Contains(brushMaterial))
            {
                return;
            }

            OnBrushMaterialChanged?.Invoke(brushMaterial);
        }
Esempio n. 3
0
        public static void OnPhysicsMaterialChanged(ChiselBrushMaterial brushMaterial, PhysicMaterial prevValue, PhysicMaterial value)
        {
            if (!registeredLookup.Contains(brushMaterial) || (prevValue == value))
            {
                return;
            }

            DecRefCount(prevValue);
            IncRefCount(value);

            OnBrushMaterialChanged?.Invoke(brushMaterial);
        }
Esempio n. 4
0
        public static void NotifyContentsModified(ChiselBrushMaterial brushMaterial)
        {
            if (brushMaterial == null || !registeredLookup.Contains(brushMaterial))
            {
                return;
            }

            RenderMaterialInstance renderMaterialInstance;

            if (brushMaterialToRenderMaterialLookup.TryGetValue(brushMaterial, out renderMaterialInstance))
            {
                if ((renderMaterialInstance == null && brushMaterial.RenderMaterial) ||
                    (renderMaterialInstance != null && renderMaterialInstance.renderMaterial != brushMaterial.RenderMaterial))
                {
                    if (renderMaterialInstance != null)
                    {
                        DecRefCount(renderMaterialInstance.renderMaterial);
                    }
                    brushMaterialToRenderMaterialLookup[brushMaterial] = IncRefCount(brushMaterial.RenderMaterial);
                }
            }
            PhysicsMaterialInstance physicsMaterialInstance;

            if (brushMaterialToPhysicsMaterialLookup.TryGetValue(brushMaterial, out physicsMaterialInstance))
            {
                if ((physicsMaterialInstance == null && brushMaterial.PhysicsMaterial) ||
                    (physicsMaterialInstance != null && physicsMaterialInstance.physicsMaterial != brushMaterial.PhysicsMaterial))
                {
                    if (physicsMaterialInstance != null)
                    {
                        DecRefCount(physicsMaterialInstance.physicsMaterial);
                    }
                    brushMaterialToPhysicsMaterialLookup[brushMaterial] = IncRefCount(brushMaterial.PhysicsMaterial);
                }
            }

            OnBrushMaterialChanged?.Invoke(brushMaterial);
        }