コード例 #1
0
ファイル: Class703.cs プロジェクト: newchild/Project-DayZero
 // Token: 0x06002B20 RID: 11040
 // RVA: 0x00117468 File Offset: 0x00115668
 internal Class703(string string_2, Vector2 vector2_1, Origins origins_1, StoryLayer storyLayer_1, int int_6, double double_1, bool bool_4, LoopTypes loopTypes_0)
 {
     this.vector2_0 = vector2_1;
     this.origins_0 = origins_1;
     this.int_3 = int_6;
     this.bool_3 = bool_4;
     this.double_0 = Math.Max(1.0, double_1);
     this.storyLayer_0 = storyLayer_1;
     this.float_0 = Class872.smethod_6(this.storyLayer_0);
     this.class538_0 = new Class538(null, Enum115.const_2, origins_1, Enum114.const_1, vector2_1, this.float_0, false, Color.get_White(), null);
     this.class538_0.loopTypes_0 = loopTypes_0;
     if (Class466.Current != null && Class466.Current.int_6 < 6)
     {
         this.class538_0.method_53(Math.Round(0.015 * double_1) * 1.186 * 16.666666666666668);
     }
     else
     {
         this.class538_0.method_53(double_1);
     }
     this.class531_0 = this.class538_0;
     this.eventTypes_0 = EventTypes.Animation;
     this.string_0 = string_2.Replace(Class466.Current.method_3() + Path.DirectorySeparatorChar, string.Empty);
     this.string_1 = new string[this.int_3];
     for (int i = 0; i < this.int_3; i++)
     {
         string text = this.string_0.Replace(".", i + ".");
         Class885.smethod_7(text);
         this.string_1[i] = text;
     }
     this.class538_0.method_41(new EventHandler(this.method_4));
 }
コード例 #2
0
 float GetIncreasingDrawDepth
     (StoryLayer
     layer)
 {
     spriteDrawDepth += 0.0001f;
     return(0.5f + ((float)layer * 0.1f) + spriteDrawDepth);
 }
コード例 #3
0
        internal EventSprite(string filename, Vector2 startPosition, OriginTypes origin, StoryLayer layer)
        {
            Texture2D texture = SpriteCache.GetTexture(BeatmapManager.Current.ContainingFolder + "\\" + filename);

            Sprite =
                new pSprite(texture, FieldTypes.GamefieldRatio, origin, ClockTypes.Audio, startPosition,
                            EventManager.GetIncreasingDrawDepth(layer), false, Color.White);
            Layer    = layer;
            Origin   = origin;
            Type     = EventTypes.Sprite;
            Filename = filename;
        }
コード例 #4
0
ファイル: EventSample.cs プロジェクト: Crystallinqq/osu-2005
        internal EventSample(string filename, int time, StoryLayer layer)
        {
            Type          = EventTypes.Sample;
            Filename      = filename;
            SampleChannel =
                Bass.BASS_SampleLoad(BeatmapManager.Current.ContainingFolder + "\\" + Filename, 0, 0, 5,
                                     BASSFlag.BASS_SAMPLE_OVER_POS);

            StartTime = time;
            Layer     = layer;

            SampleCache = new SampleCacheItem(StartTime, SampleChannel);
        }
コード例 #5
0
        internal EventSample(int channel, string filename, int time, StoryLayer layer, int volume)
        {
            this.Volume = volume;
            Type        = EventTypes.Sample;
            Filename    = filename;

            //todo: optimise this
            SampleId = channel;

            StartTime = time;
            Layer     = layer;

            SampleCache = new SampleCacheItem(StartTime, SampleId, Volume, true);
        }
コード例 #6
0
ファイル: EventSprite.cs プロジェクト: notperry1234567890/osu
        internal EventSprite(string filename, Vector2 startPosition, Origins origin, StoryLayer layer, bool useSkinTextures)
        {
            this.startPosition   = startPosition;
            this.origin          = origin;
            this.useSkinTextures = useSkinTextures;
            Layer    = layer;
            Type     = EventTypes.Sprite;
            depth    = EventManager.GetIncreasingDrawDepth(Layer);
            Filename = GeneralHelper.PathSanitise(filename).Replace(BeatmapManager.Current.ContainingFolderAbsolute + Path.DirectorySeparatorChar, string.Empty);

            TextureManager.Reference(Filename);

            Sprite = new pSprite(null, Fields.Storyboard, origin, Clocks.Audio, startPosition, depth, false, Color.White);

            Sprite.OnDisposable += Unload;
        }
コード例 #7
0
        /// <summary>
        /// Adds the specified e.  Note this is only for sprites at the moment
        /// </summary>
        /// <param name="e">The e.</param>
        /// <param name="layer">The layer.</param>
        /// <param name="insertPos">The insert pos.</param>
        public void Add(Event e, StoryLayer layer, int insertPos)
        {
            if (e.EndTime > lastEventTime)
            {
                lastEventTime = e.EndTime;
            }
            if (e.StartTime < firstEventTime)
            {
                firstEventTime = e.StartTime;
            }

            e.Layer = layer;

            int intLayer = (int)layer;

            events.Add(e);

            if (insertPos > storyLayerSprites[intLayer].Count - 1)
            {
                storyLayerSprites[intLayer].Add(e);
            }
            else
            {
                storyLayerSprites[intLayer].Insert(insertPos, e);
            }
            int count = storyLayerSprites[intLayer].Count;

            for (int i = insertPos; i < count - 1; i++)
            {
                storyLayerSprites[intLayer][i].Sprite.Depth = storyLayerSprites[intLayer][i + 1].Sprite.Depth;
            }
            storyLayerSprites[intLayer][count - 1].Sprite.Depth = GetIncreasingDrawDepth(e.Layer);

            if (e.Sprite != null)
            {
                if (e.Layer == StoryLayer.Background)
                {
                    spriteManagerBG.Add(e.Sprite);
                    spriteManagerBG.ResortDepth();
                }
                else
                {
                    spriteManagerFG.Add(e.Sprite);
                    spriteManagerFG.ResortDepth();
                }
            }
        }
コード例 #8
0
        internal EventAnimation(string filename, Vector2 startPosition, Origins origin, StoryLayer layer, int frameCount, double frameDelay,
                                bool useSkinSprites, LoopTypes loopType)
        {
            this.startPosition  = startPosition;
            this.origin         = origin;
            this.FrameCount     = frameCount;
            this.useSkinSprites = useSkinSprites;

            FrameDelay = Math.Max(1, frameDelay);

            Layer = layer;

            depth = EventManager.GetIncreasingDrawDepth(Layer);

            Animation =
                new pAnimation(null, Fields.Storyboard, origin, Clocks.Audio, startPosition,
                               depth, false, Color.White, null);
            Animation.LoopType = loopType;
            if (BeatmapManager.Current != null && BeatmapManager.Current.BeatmapVersion < 6)
            {
                Animation.FrameDelay = Math.Round(0.015 * frameDelay) * 1.186 * GameBase.SIXTY_FRAME_TIME; //backwards compatibility for older storyboards.
            }
            else
            {
                Animation.FrameDelay = frameDelay;
            }

            Sprite = Animation;
            Type   = EventTypes.Animation;

            Filename = GeneralHelper.PathSanitise(filename).Replace(BeatmapManager.Current.ContainingFolderAbsolute + Path.DirectorySeparatorChar, string.Empty);

            Filenames = new string[FrameCount];
            for (int i = 0; i < FrameCount; i++)
            {
                string f = Filename.Replace(".", i + ".");
                TextureManager.Reference(f);
                Filenames[i] = f;
            }

            Animation.OnDisposable += Unload;
        }
コード例 #9
0
        internal void ToggleLayer(StoryLayer layer)
        {
            int index = (int)layer;

            if (storyLayerEnabled[index])
            {
                foreach (Event ev in storyLayerSprites[index].FindAll(e => e.Sprite != null))
                {
                    ev.Sprite.Bypass = true;
                }
            }
            else
            {
                foreach (Event ev in storyLayerSprites[index].FindAll(e => e.Sprite != null))
                {
                    ev.Sprite.Bypass = false;
                }
            }

            storyLayerEnabled[index] = !storyLayerEnabled[index];
        }
コード例 #10
0
        internal EventAnimation(string filename, Vector2 startPosition, OriginTypes origin, StoryLayer layer, int frameCount, int frameDelay)
        {
            Texture2D[] textures = new Texture2D[frameCount];

            for (int i = 0; i < frameCount; i++)
            {
                textures[i] = SpriteCache.GetTexture(BeatmapManager.Current.ContainingFolder + "\\" + filename.Replace(".", i + "."));
            }

            Animation =
                new
                pAnimation(textures, FieldTypes.GamefieldRatio, origin, ClockTypes.Audio, startPosition,
                           EventManager.GetIncreasingDrawDepth(layer), false, Color.White, null);
            Sprite              = Animation;
            FrameDelay          = Math.Max(1, frameDelay);
            Animation.frameSkip = (int)Math.Round(0.06 * frameDelay);

            Layer    = layer;
            Origin   = origin;
            Type     = EventTypes.Animation;
            Filename = filename;
        }
コード例 #11
0
ファイル: Class376.cs プロジェクト: newchild/Project-DayZero
 // Token: 0x06002758 RID: 10072
 // RVA: 0x000F457C File Offset: 0x000F277C
 internal void method_19(StoryLayer storyLayer_0)
 {
     this.class872_0.method_11(storyLayer_0);
     this.class762_2.method_6(this.class872_0.bool_9[0]);
     this.class762_4.method_6(this.class872_0.bool_9[3]);
     this.class762_3.method_6(this.class872_0.bool_9[1]);
     this.class762_5.method_6(this.class872_0.bool_9[2]);
     this.bool_2 = true;
 }
コード例 #12
0
ファイル: EventSprite.cs プロジェクト: notperry1234567890/osu
 internal EventSprite(string filename, Vector2 startPosition, Origins origin, StoryLayer layer)
     : this(filename, startPosition, origin, layer, false)
 {
 }
コード例 #13
0
        private void UpdateEventList()
        {
            eventList.Update();

            if (eventListDragging != null)
            {
                eventListDragging.Position = eventListDragging.InitialPosition +
                                             (MouseManager.MousePosition - eventListDraggingStart) /
                                             GameBase.WindowManager.Ratio;

                foreach (pSprite p in eventList.ContentSpriteManager.SpriteList.FindAll(t => t.TagNumeric > 0))
                {
                    pText pt = p as pText;
                    if (eventListDragging == p || (pt != null && pt.Text == @"Background"))
                    {
                        continue;
                    }

                    if (p.InitialPosition.Y > eventListDragging.Position.Y - eventDrawHeight / 2)
                    {
                        if (p.Position == p.InitialPosition)
                        {
                            p.MoveTo(p.InitialPosition + new Vector2(0, eventDrawHeight), 80);
                        }
                    }
                    else if (p.InitialPosition.Y < eventListDragging.Position.Y)
                    {
                        if (p.Position != p.InitialPosition)
                        {
                            p.MoveTo(p.InitialPosition, 80);
                        }
                    }
                }
            }

            if (EventListUpdateRequired)
            {
                eventList.ClearSprites();
                eventListDictionary.Clear();

                float y = 0;

                float drawDepth = 0.5f;

                float scale = DpiHelper.DPI(GameBase.Form) / 96.0f;
                for (int i = 0; i < eventManager.storyLayerSprites.Length; i++)
                {
                    bool layerIsEnabled = eventManager.storyLayerEnabled[i];

                    List <Event> l = eventManager.storyLayerSprites[i];

                    StoryLayer layer = (StoryLayer)i;

                    pText pt = new pText(layer.ToString(), 8 * scale, new Vector2(0, y), drawDepth, true, layerIsEnabled ? Color.Orange : Color.LightGray);
                    pt.TextRenderSpecific = false;
                    pt.TextAa             = false;
                    pt.TextShadow         = true;
                    pt.TagNumeric         = 1;
                    pt.HandleInput        = true;
                    pt.OnHover           += delegate
                    {
                        if (selectedEvent != null)
                        {
                            pt.TextBold    = true;
                            pt.TextChanged = true;
                        }
                    };
                    pt.OnHoverLost += delegate
                    {
                        pt.TextBold    = false;
                        pt.TextChanged = true;
                    };
                    pt.OnClick += delegate
                    {
                        if (selectedEvent != null)
                        {
                            moveEventToLayer(selectedEvent, layer);
                        }
                        else
                        {
                            ToggleLayer(layer);
                        }
                    };
                    eventList.ContentSpriteManager.Add(pt);
                    if (eventDrawHeight == 0)
                    {
                        eventDrawHeight = (pt.MeasureText().Y + 4 * scale) / GameBase.WindowManager.Ratio;
                    }
                    y += eventDrawHeight;

                    drawDepth += 0.0001f;

                    if (!layerIsEnabled)
                    {
                        continue; //don't display the events if this layer is hidden.
                    }
                    foreach (Event e in l)
                    {
                        if (e.Sprite == null)
                        {
                            continue;
                        }

                        pText pt1 = new pText(e.Filename.Length >= 4 ? e.Filename.Remove(e.Filename.Length - 4) : e.Filename + @" ", 8 * scale, new Vector2(2, y), drawDepth,
                                              true, Color.White);
                        pt1.TextRenderSpecific = false;
                        pt1.TextAa             = false;
                        pt1.HandleInput        = true;
                        pt1.TextShadow         = true;
                        pt1.Tag        = e;
                        pt1.TagNumeric = 2;
                        pt1.OnHover   += delegate
                        {
                            pt1.BackgroundColour = new Color(92, 92, 92);
                            pt1.TextChanged      = true;
                        };
                        pt1.OnHoverLost += delegate
                        {
                            pt1.BackgroundColour = Color.TransparentWhite;
                            pt1.TextChanged      = true;
                        };
                        if (e == selectedEvent)
                        {
                            pt1.TextBold      = true;
                            pt1.TextUnderline = true;
                        }
                        Event e1 = e;
                        pt1.OnClick += delegate
                        {
                            if (editor.CurrentMode != EditorModes.Design)
                            {
                                return;
                            }

                            if ((!e1.Sprite.IsVisible || MouseManager.DoubleClick) &&
                                e1.Sprite.Transformations.Count > 0)
                            {
                                AudioEngine.SeekTo(e1.Sprite.Transformations[0].Time1);
                            }
                            SetSelectedEvent(e1, false);
                        };

                        eventList.ContentSpriteManager.Add(pt1);
                        y += (pt1.MeasureText().Y + 4 * scale) / GameBase.WindowManager.Ratio;

                        eventListDictionary.Add(e, pt1);

                        drawDepth += 0.0001f;
                    }
                }

                eventList.SetContentDimensions(new Vector2(66, y));
                EventListUpdateRequired = false;
            }
        }