JD2022-TU1/main/tools/apps/TRec/Addins/Tape.addin.cs

300 lines
14 KiB
C#

using System;
using System.Xml.Linq;
using JD.TeaBoxAddinSystem.Addins;
public class Tape_Addin : IXmlAddin
{
public string FileName => "Tape.addin";
public XElement RootElement { get; } =
new XElement("TeaBox",
new XElement("Addin",
new XAttribute("id", "Tape"),
new XAttribute("author", "Ubisoft"),
new XAttribute("category", "General"),
new XAttribute("name", "Tape"),
new XAttribute("description", "Allows to edit tapes."),
new XElement("Files",
new XElement("Import",
new XAttribute("assembly", "TRec.exe"),
new XElement("Import",
new XAttribute("resource", $"{typeof(TRec.Properties.Resources).FullName}")
)
)
),
new XElement("Dependencies",
new XElement("Addin",
new XAttribute("id", "JD.Application")
),
new XElement("Addin",
new XAttribute("id", "TeaBox.Application")
),
new XElement("Addin",
new XAttribute("id", "Timeline")
)
),
// TreeViewToolbar
new XElement("Extension",
new XAttribute("path", "Application/TreeViewToolbar"),
new XElement("Actions",
new XAttribute("id", "TrackTreeView"),
new XAttribute("guid", "6DF581C9-6949-49F2-9B99-83F9C9DCDA5B"),
new XElement("ActionReference",
new XAttribute("id", "TimelineActions.AddTrack")
),
new XElement("Separator"),
new XElement("ActionReference",
new XAttribute("id", "EditActions.Delete")
)
)
),
// ContextMenu
new XElement("ExtensionPoint",
new XAttribute("path", "Application/TrackTreeView/ContextMenu"),
new XElement("ExtensionNodeSet",
new XAttribute("name", "Actions")
)
),
// ContextMenu
new XElement("Extension",
new XAttribute("path", "Application/TrackTreeView/ContextMenu"),
new XElement("ActionReference",
new XAttribute("id", "TimelineActions.InsertTrack")
)
),
// ToolBars
new XElement("Extension",
new XAttribute("path", "Application/ToolBars"),
new XElement("Actions",
new XAttribute("id", "TRec"),
new XAttribute("guid", "412E2170-F628-42D5-A2DB-424C6CBC6D3E"),
new XElement("ActionReference",
new XAttribute("id", "EditorActions.TogglePlay")
),
new XElement("ActionReference",
new XAttribute("id", "EditorActions.PreviousFrame")
),
new XElement("ActionReference",
new XAttribute("id", "EditorActions.NextFrame")
),
new XElement("Actions",
new XAttribute("id", "MarkCheckpoint"),
new XAttribute("default_action", "EditorActions.MarkCheckpoint"),
new XAttribute("showIconAndText", "False"),
new XAttribute("icon", "Icons_30x30_Checkpoint"),
new XElement("ActionReference",
new XAttribute("id", "EditorActions.MarkCheckpoint")
),
new XElement("ActionReference",
new XAttribute("id", "EditorActions.GoToCheckpoint")
),
new XElement("ActionReference",
new XAttribute("id", "EditorActions.ClearCheckpoint")
),
new XElement("ActionReference",
new XAttribute("id", "EditorActions.Rewind")
)
),
new XElement("Separator"),
new XElement("ActionReference",
new XAttribute("id", "EditorActions.SnapUnitDropdown")
),
new XElement("ActionReference",
new XAttribute("id", "EditorActions.ScrollingModeDropdown")
),
new XElement("ActionReference",
new XAttribute("id", "EditorActions.ToggleLoop")
),
new XElement("ActionReference",
new XAttribute("id", "EditorActions.ToggleRememberSeekTime")
),
new XElement("Action",
new XAttribute("id", "ClipLimitWarning"),
new XAttribute("icon", "Icon_30x30_warning"),
new XAttribute("defaultHandler", $"{typeof(JD.Timeline.View.Actions.ClipLimitWarning).FullName}"),
new XAttribute("description", "Clip limit reached (please do not add more than 300 clips to a tape).")
)
)
),
// General
new XElement("Extension",
new XAttribute("path", "Application/ToolBars/General"),
new XElement("ActionReference",
new XAttribute("id", "ApplicationActions.NewFile"),
new XAttribute("icon", "Icons_30x30_AddNewItem"),
new XAttribute("insertbefore", "*")
),
new XElement("ActionReference",
new XAttribute("id", "TimelineActions.OpenTapeDropDown"),
new XAttribute("insertbefore", "ApplicationActions.Save")
)
),
// New
new XElement("Extension",
new XAttribute("path", "Application/MainMenu/File/New"),
new XElement("Action",
new XAttribute("id", "ApplicationActions.NewDemoTape"),
new XAttribute("text", "Demo tape..."),
new XAttribute("description", "Opens a tape that allows to test the tool with dummy data."),
new XAttribute("shortcut", "Ctrl+Shift+N"),
new XAttribute("icon", "Icons_16x16_NewDocument"),
new XAttribute("defaultHandler", $"{typeof(TRec.NewDemoTapeHandler).FullName}")
)
),
// MainMenu
new XElement("Extension",
new XAttribute("path", "Application/MainMenu"),
new XElement("Actions",
new XAttribute("id", "Tools"),
new XAttribute("insertbefore", "Help"),
new XElement("Actions",
new XAttribute("id", "Advanced"),
new XElement("ActionReference",
new XAttribute("id", "ConvertSequencesToTapes")
),
new XElement("ActionReference",
new XAttribute("id", "MergeTracks")
)
),
new XElement("ActionReference",
new XAttribute("id", "MergeClips")
)
)
),
// Open
new XElement("Extension",
new XAttribute("path", "Application/MainMenu/File/Open"),
new XElement("ActionReference",
new XAttribute("id", "TimelineActions.OpenMaster"),
new XAttribute("icon", "Icon_30x30_open_main")
),
new XElement("ActionReference",
new XAttribute("id", "TimelineActions.OpenFromEngine"),
new XAttribute("icon", "Icon_30x30_open_from_engine")
)
),
// DocumentBindings
new XElement("Extension",
new XAttribute("path", "Application/DocumentBindings"),
new XElement("DocumentBinding",
new XAttribute("id", "Tape"),
new XAttribute("name", "Tape"),
new XAttribute("icon", "Icon_16x16_TRec"),
new XAttribute("class", "TRec.TRecDocumentBinding"),
new XElement("FileFilter",
new XAttribute("name", "Tape files"),
new XAttribute("extensions", "*.tape;")
)
)
),
// ContextMenu
new XElement("ExtensionPoint",
new XAttribute("path", "Application/ClipView/ContextMenu"),
new XElement("ExtensionNodeSet",
new XAttribute("name", "Actions")
)
),
// ContextMenu
new XElement("Extension",
new XAttribute("path", "Application/ClipView/ContextMenu"),
new XElement("ActionReference",
new XAttribute("id", "OpenTapeReference")
),
new XElement("ActionReference",
new XAttribute("id", "SnapToOriginalDuration")
),
new XElement("Actions",
new XAttribute("id", "Actor"),
new XElement("ActionReference",
new XAttribute("id", "TimelineActions.AssignToSelectedActor")
),
new XElement("ActionReference",
new XAttribute("id", "TimelineActions.BrowseForActor")
)
),
new XElement("Actions",
new XAttribute("id", "Add"),
new XElement("Actions",
new XAttribute("id", "MaterialGraphic"),
new XElement("ActionReference",
new XAttribute("id", "TimelineActions.AddClipMaterial")
)
),
new XElement("Actions",
new XAttribute("id", "Gameplay"),
new XElement("ActionReference",
new XAttribute("id", "TimelineActions.AddClipGameplay")
)
),
new XElement("Action",
new XAttribute("id", "DanceEditorActions.AddClip"),
new XAttribute("type", "Array"),
new XAttribute("description", "Adds all the available clips as a separate action"),
new XAttribute("defaultHandler", $"{typeof(TRec.AddNewClipActionHandler).FullName}")
)
),
new XElement("Actions",
new XAttribute("id", "Refactor"),
new XAttribute("icon", "Icons_16x16_LightBulb"),
new XElement("ActionReference",
new XAttribute("id", "TimelineActions.CreateTape")
),
new XElement("ActionReference",
new XAttribute("id", "TimelineActions.ExplodeTape")
),
new XElement("ActionReference",
new XAttribute("id", "SplitClips")
)
),
new XElement("ActionReference",
new XAttribute("id", "ActivateClips")
)
),
// TreeViewToolbar
new XElement("ExtensionPoint",
new XAttribute("path", "Application/TreeViewToolbar"),
new XElement("ExtensionNodeSet",
new XAttribute("name", "ActionBaseSet")
)
),
// Pads
new XElement("Extension",
new XAttribute("path", "Application/Pads"),
new XElement("Pad",
new XAttribute("id", "CurveEditor"),
new XAttribute("category", "Main"),
new XAttribute("title", "Curve Editor"),
new XAttribute("shortcut", "Ctrl+W,C"),
new XAttribute("icon", "Icons_16x16_Curve"),
new XAttribute("guid", "1F0DC804-B8C5-4C9A-A08B-E30D7B7EE783"),
new XAttribute("type", $"{typeof(JD.Timeline.View.CurveEditor.CurveEditorPad).FullName}")
),
new XElement("Pad",
new XAttribute("id", "Pleo"),
new XAttribute("category", "Main"),
new XAttribute("title", "Video player"),
new XAttribute("shortcut", "Ctrl+W, V"),
new XAttribute("icon", "Icons_16x16_Curve"),
new XAttribute("guid", "51D1D7DD-FB18-4B10-9F1F-8C31BA012186"),
new XAttribute("type", $"{typeof(JD.Timeline.View.VideoView.TapeVideoPad).FullName}")
)
)
)
)
;
}