public static bool OpenPackage(AMTPackage Package, string FileName) { AMTPackage ClonedPackage; try { ClonedPackage = (AMTPackage)JsonConvert.DeserializeObject <AMTPackage>(File.ReadAllText(FileName)).Clone(); } catch { return(false); } if (!ClonedPackage.Animation.Manifest.Version.Equals(AMTConfig.Version)) { MessageBox.Show("AMT file version does not match!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } //Setting Variables Package.Animation = ClonedPackage.Animation; Package.Resources = ClonedPackage.Resources; Package.Name = ClonedPackage.Name; Package.WorkingDir = Path.GetDirectoryName(FileName); Package.PackageState = AMTUtil.State.READY; foreach (KeyValuePair <string, string> s in Package.Resources) { if (!File.Exists(AMTUtil.GetAbsPath(Package.WorkingDir, s + AMTConfig.ResourceExtension))) { MessageBox.Show("Resource [" + s.Value + "] is not found!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } } return(true); }
public MainWindow() { InitializeComponent(); Package = new AMTPackage(); bool result = AMTUtil.OpenPackage(Package, AMTUtil.GetAbsPath(Directory.GetCurrentDirectory(), "AMT.apkg")); if (result) { //Set current action Default = new AMTActionPlayer(Package.Animation, AMTUtil.GetDefaultAction(Package.Animation)); CurrentAction = Default; Timer = new DispatcherTimer(); Timer.Interval = TimeSpan.FromMilliseconds(10); Timer.Tick += Timer_Tick; Timer.Start(); this.MouseDoubleClick += MainWindow_MouseDoubleClick; MEAudio.Play(); } else { this.Close(); System.Environment.Exit(0); } this.MouseDown += Window_MouseDown; }
private void btnOpenExisting_Click(object sender, EventArgs e) { OpenFileDialog OpenFileDialog = new OpenFileDialog(); OpenFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); OpenFileDialog.Filter = AMTConfig.PackageExtension + " files (*" + AMTConfig.PackageExtension + ")|*" + AMTConfig.PackageExtension; OpenFileDialog.FilterIndex = 2; OpenFileDialog.RestoreDirectory = true; if (OpenFileDialog.ShowDialog() == DialogResult.OK) { //Clear UI Before this and Data Package.PackageState = AMTUtil.State.LOADED; ClearElements(); InitData(); //File Loading if (!AMTUtil.OpenPackage(Package, OpenFileDialog.FileName)) { MessageBox.Show("Project Load Error!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); Package = new AMTPackage(); Package.PackageState = AMTUtil.State.EMPTY; } else { PopulateResources(); lbAssets.SelectedIndex = 0; PopulateAssetFrames(); lbGifFrames.SelectedIndex = 0; PopulateUI(); } } }
public AMTActionPlayer(AMTPackage Pak, AMTAction Act) { this.Package = Pak; this.Action = AMTUtil.ExpandFrame(Pak.Animation, Act); this.CurrentFrame = 0; this.LoopTimes = 0; this.RandomGenerator = new Random(); }
public ActionPreview(AMTPackage Package, AMTAction Action) { InitializeComponent(); PreviewPackage = Package; PreviewAction = Action; ExpandedActionPlayer = new AMTActionPlayer(Package, Action); this.Text = this.Text + " " + Action.Name; PlayTimer.Enabled = true; }
public static AMTResource GetResourceFromName(AMTPackage Package, string ResourceName) { string AbsResourceName = AMTUtil.GetAbsPath(Package.WorkingDir, ResourceName + AMTConfig.ResourceExtension); if (Package.Resources.Exists(delegate(KeyValuePair <string, string> match) { return(match.Value == ResourceName); })) { return((AMTResource)JsonConvert.DeserializeObject <AMTResource>(File.ReadAllText(AbsResourceName))); } else { return(null); } }
/// <summary> /// Load Current Selected Asset into Memory /// </summary> /// <param name="AssetName">path of the asset</param> /// <returns>loaded asset list</returns> public static void LoadAsset(AMTPackage Package, string AssetName) { Package.CurrentResource.Frames.Clear(); try { //Try extracting the frames Package.CurrentResource.Frames = EnumerateFrames(AssetName); if (Package.CurrentResource.Frames == null || Package.CurrentResource.Frames.Count() == 0) { throw new NoNullAllowedException("Unable to obtain frames from " + AssetName); } } catch (Exception ex) { MessageBox.Show( "Error type: " + ex.GetType().ToString() + "\n" + "Message: " + ex.Message, "Error in " + MethodBase.GetCurrentMethod().Name ); } }
/// <summary> /// /// </summary> /// <param name="Package"></param> /// <param name="Frames"></param> /// <param name="DefaultDelay"></param> public static void InitAnimation(AMTPackage Package, string ResourceName, int DefaultDelay = 100) { Package.PackageState = State.LOADED; Package.Animation = new AMTAnimation(); Package.Animation.Manifest.ActionFileName.Add(AMTConfig.DefaultAction); Package.Animation.Manifest.DefaultAction = AMTConfig.DefaultAction; Package.Animation.Actions.Add(new AMTAction()); Package.Animation.Actions[0].Name = AMTConfig.DefaultAction; Package.Animation.Actions[0].Frames.Add(new AMTFrame()); Package.Animation.Actions[0].Frames[0].Resource = ResourceName; Package.Animation.Actions[0].Frames[0].Delay = DefaultDelay; Package.Animation.Actions[0].Frames[0].FrameRef = 0; Package.Animation.Actions[0].Frames[0].Tags.Add("null"); if (Package.CurrentResource.Name != ResourceName) { Package.SwitchResource(ResourceName); } Package.Animation.Actions[0].Frames[0].MD5 = ImageMD5(BytesToImage(Package.CurrentResource.Frames[0])); Package.SavePackage(); Package.PackageState = State.READY; }
private void InitData() { Package = new AMTPackage(); tAutoSave.Interval = 1000 * 60 * 2; //2min autosave cycle }