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); }