void LoadPlayerPrefs(int Type) { List <Sprite> SpriteList = new List <Sprite>(Resources.LoadAll <Sprite>(ListName[Type])); string PlayerPrefString = PlayerPrefs.GetString(ListName[Type], ""); string[] PlayerPrefArray = PlayerPrefString.Split(','); string NewPlayerPrefString = ""; SpriteStatusLists[Type] = new List <SpriteStatus>(); foreach (Sprite Sprite in SpriteList) { string Avalability = "Unavailable"; if (Sprite.name.Split('-')[0] == "None" || Sprite.name.Split('-')[0] == "Default") { Avalability = "Available"; } if (PlayerPrefString.Contains(Sprite.name)) { foreach (string SpriteStatus in PlayerPrefArray) { if (SpriteStatus.Split('=')[0] == Sprite.name) { Avalability = SpriteStatus.Split('=')[1]; } } } SpriteStatus newSpriteStatus = new SpriteStatus() { Sprite = Sprite, Name = Sprite.name.Split('-')[0], Cost = int.Parse(Sprite.name.Split('-')[1]), Status = Avalability }; SpriteStatusLists[Type].Add(newSpriteStatus); if (Avalability == "Equipped") { CurrentEquipment[Type] = newSpriteStatus; } NewPlayerPrefString += Sprite.name + "=" + Avalability + ","; } SpriteStatusLists[Type].Sort(SortByCost); PlayerPrefs.SetString(ListName[Type], NewPlayerPrefString); //print("Load " + Type + ": " + "Current: " + CurrentEquipment[Type].Name + "\n" + NewPlayerPrefString); }
private static void OnWndProc(WndEventArgs args) { if (HudSprite == null || !ShouldBeVisible) { return; } if (IsDragging) { Variables.Menu.Item("dz191.dza.hud.x") .SetValue(new Slider((int)(Utils.GetCursorPos().X - XDistanceFromEdge), 0, Drawing.Direct3DDevice.Viewport.Width)); Variables.Menu.Item("dz191.dza.hud.y") .SetValue(new Slider((int)(Utils.GetCursorPos().Y - YDistanceFromEdge), 0, Drawing.Direct3DDevice.Viewport.Height)); } if (IsInside(Utils.GetCursorPos()) && args.Msg == (uint)WindowsMessages.WM_LBUTTONDOWN) { if (!IsDragging) { if (InitialDragPoint == new Vector2()) { InitialDragPoint = CurrentPosition; XDistanceFromEdge = Math.Abs(InitialDragPoint.X - Utils.GetCursorPos().X); YDistanceFromEdge = Math.Abs(InitialDragPoint.Y - Utils.GetCursorPos().Y); } IsDragging = true; } } else if (IsDragging && args.Msg == (uint)WindowsMessages.WM_LBUTTONUP) { HudSprite.PositionUpdate = () => CurrentPosition; Variables.Menu.Item("dz191.dza.hud.x") .SetValue(new Slider((int)(Utils.GetCursorPos().X - XDistanceFromEdge), 0, Drawing.Direct3DDevice.Viewport.Width)); Variables.Menu.Item("dz191.dza.hud.y") .SetValue(new Slider((int)(Utils.GetCursorPos().Y - YDistanceFromEdge), 0, Drawing.Direct3DDevice.Viewport.Height)); InitialDragPoint = new Vector2(); XDistanceFromEdge = 0; YDistanceFromEdge = 0; IsDragging = false; } if (args.Msg == (uint) WindowsMessages.WM_LBUTTONUP) { if ( Utils.GetCursorPos() .Distance(new Vector2(CurrentPosition.X + SpriteWidth - 15, CurrentPosition.Y + CroppedHeight - 15)) < 7) { if (CurrentStatus == SpriteStatus.Shrinked) { CurrentStatus = SpriteStatus.Expanded; HudSprite.Crop(0, 0, (int) SpriteWidth, (int)SpriteHeight); ExpandShrinkButton.Remove(); ExpandShrinkButton = new Render.Sprite(Resources.Shrink, CurrentPosition) { PositionUpdate = () => new Vector2(CurrentPosition.X + SpriteWidth - 20, CurrentPosition.Y + CroppedHeight - 20), Scale = new Vector2(0.7f, 0.7f), VisibleCondition = delegate { return ShouldBeVisible; } }; ExpandShrinkButton.Add(1); } else { CurrentStatus = SpriteStatus.Shrinked; HudSprite.Crop(0, 0, (int)SpriteWidth, CroppedHeight); ExpandShrinkButton.Remove(); ExpandShrinkButton = new Render.Sprite(Resources.Expand, CurrentPosition) { PositionUpdate = () => new Vector2(CurrentPosition.X + SpriteWidth - 20, CurrentPosition.Y + CroppedHeight - 20), Scale = new Vector2(0.7f, 0.7f), VisibleCondition = delegate { return ShouldBeVisible; } }; ExpandShrinkButton.Add(1); } } } }
static int SortByCost(SpriteStatus One, SpriteStatus Two) { return(One.Cost.CompareTo(Two.Cost)); }
/// <summary> /// Raises the <see cref="E:WndProc" /> event. /// </summary> /// <param name="args">The <see cref="WndEventArgs"/> instance containing the event data.</param> private static void OnWndProc(WndEventArgs args) { if (HudSprite == null || !ShouldBeVisible) { return; } if (IsDragging) { DraggingPosition.X = (int)(Utils.GetCursorPos().X - XDistanceFromEdge); DraggingPosition.Y = (int)(Utils.GetCursorPos().Y - YDistanceFromEdge); // Variables.Menu.Item("dz191.dza.hud.x") // .SetValue(new Slider((int)(Utils.GetCursorPos().X - XDistanceFromEdge), 0, Drawing.Direct3DDevice.Viewport.Width)); // Variables.Menu.Item("dz191.dza.hud.y") // .SetValue(new Slider((int)(Utils.GetCursorPos().Y - YDistanceFromEdge), 0, Drawing.Direct3DDevice.Viewport.Height)); } if (IsInside(Utils.GetCursorPos()) && args.Msg == (uint)WindowsMessages.WM_LBUTTONDOWN) { if (!IsDragging) { if (InitialDragPoint == new Vector2()) { InitialDragPoint = CurrentPosition; XDistanceFromEdge = Math.Abs(InitialDragPoint.X - Utils.GetCursorPos().X); YDistanceFromEdge = Math.Abs(InitialDragPoint.Y - Utils.GetCursorPos().Y); DraggingPosition.X = (int)(Utils.GetCursorPos().X - XDistanceFromEdge); DraggingPosition.Y = (int)(Utils.GetCursorPos().Y - YDistanceFromEdge); } IsDragging = true; } } else if (IsDragging && args.Msg == (uint)WindowsMessages.WM_LBUTTONUP) { HudSprite.PositionUpdate = () => CurrentPosition; Variables.Menu.Item("dz191.dza.hud.x") .SetValue(new Slider((int)(Utils.GetCursorPos().X - XDistanceFromEdge), 0, Drawing.Direct3DDevice.Viewport.Width)); Variables.Menu.Item("dz191.dza.hud.y") .SetValue(new Slider((int)(Utils.GetCursorPos().Y - YDistanceFromEdge), 0, Drawing.Direct3DDevice.Viewport.Height)); InitialDragPoint = new Vector2(); XDistanceFromEdge = 0; YDistanceFromEdge = 0; DraggingPosition = new Vector2(); IsDragging = false; } if (args.Msg == (uint)WindowsMessages.WM_LBUTTONUP) { if ( Utils.GetCursorPos() .Distance(new Vector2(CurrentPosition.X + SpriteWidth - 15, CurrentPosition.Y + CroppedHeight - 15)) < 7) { if (CurrentStatus == SpriteStatus.Shrinked) { CurrentStatus = SpriteStatus.Expanded; HudSprite.Crop(0, 0, (int)SpriteWidth, (int)SpriteHeight); ExpandShrinkButton.Remove(); ExpandShrinkButton = new Render.Sprite(Resources.Shrink, CurrentPosition) { PositionUpdate = () => new Vector2(CurrentPosition.X + SpriteWidth - 20, CurrentPosition.Y + CroppedHeight - 20), Scale = new Vector2(0.7f, 0.7f), VisibleCondition = delegate { return(ShouldBeVisible); } }; ExpandShrinkButton.Add(1); } else { CurrentStatus = SpriteStatus.Shrinked; HudSprite.Crop(0, 0, (int)SpriteWidth, CroppedHeight); ExpandShrinkButton.Remove(); ExpandShrinkButton = new Render.Sprite(Resources.Expand, CurrentPosition) { PositionUpdate = () => new Vector2(CurrentPosition.X + SpriteWidth - 20, CurrentPosition.Y + CroppedHeight - 20), Scale = new Vector2(0.7f, 0.7f), VisibleCondition = delegate { return(ShouldBeVisible); } }; ExpandShrinkButton.Add(1); } } } }