Exemplo n.º 1
0
        public static void WriteStorySceneObjectCommand(IDataOutputStream stream, AnimCommand command)
        {
            stream.WriteBoolean(command.isCamera);
            stream.WriteBoolean(command.isEased);
            stream.WriteSingle(command.startTime);
            if (command.isCamera)
            {
                if (command.isEased)
                {
                    var easeAttrCmd = (EaseCameraAttribute)command;
                    stream.WriteByte((byte)easeAttrCmd.attrType);
                    stream.WriteByte((byte)easeAttrCmd.esType);
                    stream.WriteSingle(easeAttrCmd.duration);
                    switch (easeAttrCmd.attrType)
                    {
                    case CameraAttrType.Position: {
                        var posCmd = (EaseCameraPosition)command;
                        posCmd.val.WriteTo(stream);
                    }
                    break;

                    case CameraAttrType.Zoom: {
                        var zoomCmd = (EaseCameraZoom)command;
                        stream.WriteSingle(zoomCmd.val);
                    }
                    break;
                    }
                }
                else
                {
                    var setAttrCmd = (SetCameraAttribute)command;
                    stream.WriteByte((byte)setAttrCmd.attrType);
                    switch (setAttrCmd.attrType)
                    {
                    case CameraAttrType.Position: {
                        var posCmd = (SetCameraPosition)command;
                        posCmd.val.WriteTo(stream);
                    }
                    break;

                    case CameraAttrType.Zoom: {
                        var zoomCmd = (SetCameraZoom)command;
                        stream.WriteSingle(zoomCmd.val);
                    }
                    break;
                    }
                }
            }
            else
            {
                if (command.isEased)
                {
                    var easeAttrCmd = (EaseObjectAttribute)command;
                    stream.WriteByte((byte)easeAttrCmd.attrType);
                    stream.WriteByte((byte)easeAttrCmd.esType);
                    stream.WriteSingle(easeAttrCmd.duration);
                    switch (easeAttrCmd.attrType)
                    {
                    case ObjectAttrType.Position: {
                        var posCmd = (EaseObjectPosition)command;
                        posCmd.val.WriteTo(stream);
                    }
                    break;

                    case ObjectAttrType.Rotation: {
                        var rotCmd = (EaseObjectRotation)command;
                        stream.WriteSingle(rotCmd.angle);
                    }
                    break;

                    case ObjectAttrType.Scale: {
                        var scaleCmd = (EaseObjectScale)command;
                        scaleCmd.val.WriteTo(stream);
                    }
                    break;

                    case ObjectAttrType.Alpha: {
                        var alphaCmd = (EaseObjectAlpha)command;
                        stream.WriteSingle(alphaCmd.val);
                    }
                    break;

                    case ObjectAttrType.Tint: {
                        var tintCmd = (EaseObjectTint)command;
                        tintCmd.color.WriteTo(stream);
                    }
                    break;

                    case ObjectAttrType.Sprite: {
                        var spriteCmd = (EaseObjectSprite)command;
                        stream.WriteInt32(spriteCmd.spriteIndex);
                    }
                    break;
                    }
                }
                else
                {
                    var setAttrCmd = (SetObjectAttribute)command;
                    stream.WriteByte((byte)setAttrCmd.attrType);
                    switch (setAttrCmd.attrType)
                    {
                    case ObjectAttrType.Position: {
                        var posCmd = (SetObjectPosition)command;
                        posCmd.val.WriteTo(stream);
                    }
                    break;

                    case ObjectAttrType.ZIndex: {
                        var zCmd = (SetObjectZIndex)command;
                        stream.WriteInt32(zCmd.val);
                    }
                    break;

                    case ObjectAttrType.Rotation: {
                        var rotCmd = (SetObjectRotation)command;
                        stream.WriteSingle(rotCmd.angle);
                    }
                    break;

                    case ObjectAttrType.Scale: {
                        var scaleCmd = (SetObjectScale)command;
                        scaleCmd.val.WriteTo(stream);
                    }
                    break;

                    case ObjectAttrType.Alpha: {
                        var alphaCmd = (SetObjectAlpha)command;
                        stream.WriteSingle(alphaCmd.val);
                    }
                    break;

                    case ObjectAttrType.Tint: {
                        var tintCmd = (SetObjectTint)command;
                        tintCmd.color.WriteTo(stream);
                    }
                    break;

                    case ObjectAttrType.Sprite: {
                        var spriteCmd = (SetObjectSprite)command;
                        stream.WriteInt32(spriteCmd.spriteIndex);
                    }
                    break;
                    }
                }
            }
        }
    public void AddAnimBool(string boolName, bool value)
    {
        var command = new AnimCommand(boolName, value, isTrigger: false);

        _lastFrameAnimCommands.Add(command);
    }
    public void AddAnimTrigger(string triggerName)
    {
        var command = new AnimCommand(triggerName, true, isTrigger: true);

        _lastFrameAnimCommands.Add(command);
    }
 public void AddCommand(AnimCommand command)
 {
     _commands.Add(command);
 }