本文整理汇总了C#中Main.LoadAnalytics方法的典型用法代码示例。如果您正苦于以下问题:C# Main.LoadAnalytics方法的具体用法?C# Main.LoadAnalytics怎么用?C# Main.LoadAnalytics使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Main
的用法示例。
在下文中一共展示了Main.LoadAnalytics方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Bind
public static void Bind(Entity entity, Main main, ListContainer commandQueueContainer)
{
PCInput input = entity.Get<PCInput>();
Editor editor = entity.Get<Editor>();
EditorGeeUI gui = entity.Get<EditorGeeUI>();
Property<bool> analyticsEnable = new Property<bool>();
ListProperty<SessionEntry> analyticsSessions = new ListProperty<SessionEntry>();
ListProperty<SessionEntry> analyticsActiveSessions = new ListProperty<SessionEntry>();
ListProperty<EventEntry> analyticsEvents = new ListProperty<EventEntry>();
ListProperty<EventEntry> analyticsActiveEvents = new ListProperty<EventEntry>();
ListProperty<PropertyEntry> analyticsProperties = new ListProperty<PropertyEntry>();
ListProperty<PropertyEntry> analyticsActiveProperties = new ListProperty<PropertyEntry>();
Dictionary<Session, ModelInstance> sessionPositionModels = new Dictionary<Session, ModelInstance>();
Dictionary<Session.EventList, List<ModelInstance>> eventPositionModels = new Dictionary<Session.EventList, List<ModelInstance>>();
Property<bool> analyticsPlaying = new Property<bool>();
Property<float> playbackSpeed = new Property<float> { Value = 1.0f };
Property<float> playbackLocation = new Property<float>();
const float timelineHeight = 32.0f;
Scroller timelineScroller = new Scroller();
timelineScroller.ScrollAmount.Value = 60.0f;
timelineScroller.EnableScissor.Value = false;
timelineScroller.DefaultScrollHorizontal.Value = true;
timelineScroller.AnchorPoint.Value = new Vector2(0, 1);
timelineScroller.ResizeVertical.Value = true;
timelineScroller.Add(new Binding<Vector2, Point>(timelineScroller.Position, x => new Vector2(0, x.Y), main.ScreenSize));
timelineScroller.Add(new Binding<Vector2, Point>(timelineScroller.Size, x => new Vector2(x.X, timelineHeight), main.ScreenSize));
timelineScroller.Add(new Binding<bool>(timelineScroller.Visible, () => analyticsEnable && Editor.EditorModelsVisible, analyticsEnable, Editor.EditorModelsVisible));
timelineScroller.Add(new Binding<bool>(timelineScroller.EnableScroll, x => !x, input.GetKey(Keys.LeftAlt)));
entity.Add(new CommandBinding(entity.Delete, timelineScroller.Delete));
main.UI.Root.Children.Add(timelineScroller);
timelineScroller.Add(new Binding<bool>(editor.EnableCameraDistanceScroll, () => !timelineScroller.Highlighted || editor.VoxelEditMode, timelineScroller.Highlighted, editor.VoxelEditMode));
timelineScroller.Add(new CommandBinding(timelineScroller.Delete, delegate()
{
editor.EnableCameraDistanceScroll.Value = true;
}));
ListContainer timelines = new ListContainer();
timelines.Alignment.Value = ListContainer.ListAlignment.Min;
timelines.Orientation.Value = ListContainer.ListOrientation.Vertical;
timelines.Reversed.Value = true;
timelineScroller.Children.Add(timelines);
input.Add(new CommandBinding<int>(input.MouseScrolled, () => input.GetKey(Keys.LeftAlt) && timelineScroller.Highlighted && !editor.VoxelEditMode, delegate(int delta)
{
float newScale = Math.Max(timelines.Scale.Value.X + delta * 6.0f, timelineScroller.Size.Value.X / timelines.Size.Value.X);
Matrix absoluteTransform = timelines.GetAbsoluteTransform();
float x = input.Mouse.Value.X + ((absoluteTransform.Translation.X - input.Mouse.Value.X) * (newScale / timelines.Scale.Value.X));
timelines.Position.Value = new Vector2(x, 0.0f);
timelines.Scale.Value = new Vector2(newScale, 1.0f);
}));
Container timeline = new Container();
timeline.Size.Value = new Vector2(0, timelineHeight);
timeline.Tint.Value = Microsoft.Xna.Framework.Color.Black;
timeline.ResizeHorizontal.Value = false;
timeline.ResizeVertical.Value = false;
timelines.Children.Add(timeline);
EditorFactory.AddCommand
(
entity, main, commandQueueContainer, "Load analytics data", new PCInput.Chord(),
new Command
{
Action = delegate()
{
if (main.MapFile.Value != null)
{
List<Session> sessions = main.LoadAnalytics(main.MapFile);
if (sessions.Count > 0)
{
analyticsEnable.Value = true;
Dictionary<string, bool> distinctEventNames = new Dictionary<string, bool>();
Dictionary<string, bool> distinctPropertyNames = new Dictionary<string, bool>();
foreach (Session s in sessions)
{
foreach (Session.EventList el in s.Events)
{
distinctEventNames[el.Name] = true;
s.TotalTime = Math.Max(s.TotalTime, el.Events[el.Events.Count - 1].Time);
}
foreach (Session.ContinuousProperty p in s.ContinuousProperties)
{
if (p.Independent)
distinctPropertyNames[p.Name] = true;
}
analyticsSessions.Add(new SessionEntry { Session = s });
}
analyticsEvents.AddAll(distinctEventNames.Keys.Select(x => new EventEntry { Name = x }));
analyticsProperties.AddAll(distinctPropertyNames.Keys.Select(x => new PropertyEntry { Name = x }));
timeline.Size.Value = new Vector2(analyticsSessions.Max(x => x.Session.TotalTime), timelineScroller.Size.Value.Y);
timelines.Scale.Value = new Vector2(timelineScroller.Size.Value.X / timeline.Size.Value.X, 1.0f);
}
}
}
},
gui.MapCommands,
() => !analyticsEnable && !string.IsNullOrEmpty(main.MapFile) && !gui.PickNextEntity,
//.........这里部分代码省略.........