PowerShell, Learn it or Perish ;-)

master nix

MonoMac - Where is the CAEmitterCell Content propery?

I was trying to integrate ActionScript and Away3d with the CAEmitterCell particles using MonoMac for users that do not have access (a license) to Xamarin.Mac, but…

The MonoMac project is missing the maccore CoreAnimation/CAEmitterCell.cs in the Make.shared and thus the MonoMac.dll that is distributed via Xamarin Studio is broken in this regard as it is missing the ability to assign an Image to the emitter.


            // Create the fire emitter cell
            CAEmitterCell fire = CAEmitterCell.EmitterCell ();
            fire.EmissionLongitude = (float)Math.PI;
            fire.BirthRate = 0;
            fire.Velocity = 80;
            fire.VelocityRange = 30;
            fire.EmissionRange = 1.1f;
            fire.AccelerationY = 200;
            fire.ScaleSpeed = 0.3f;

            RectangleF rect = RectangleF.Empty;
            CGColor color = new CGColor (0.8f,0.4f,0.2f,0.10f);
            fire.Color = color;
            fire.Contents = NSImage.ImageNamed ("fire.png").AsCGImage (ref rect, null, null);

I have updated PlayScript’s MonoMac (forked from Mono/MonoMac) to fix this.

git diff src/Make.shared

diff --git a/src/Make.shared b/src/Make.shared
index 986ff28..a84aeae 100644
--- a/src/Make.shared
+++ b/src/Make.shared
@@ -44,6 +44,7 @@ SHARED_SOURCE = \
        ./CoreAnimation/CALayer.cs                      \
        ./CoreAnimation/CATextLayer.cs                  \
        ./CoreAnimation/CAMediaTimingFunction.cs        \
+       ./CoreAnimation/CAEmitterCell.cs                \
        ./CoreFoundation/CFArray.cs                     \
        ./CoreFoundation/CFBoolean.cs                   \
        ./CoreFoundation/CFDictionary.cs                \