Exemplo n.º 1
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            base.DrawSelf(spriteBatch);
            CalculatedStyle innerDimensions = GetInnerDimensions();
            CalculatedStyle dimensions      = _playerPanel.GetDimensions();
            float           num             = dimensions.X + dimensions.Width;

            Utils.DrawBorderString(spriteBatch, _data.Name, new Vector2(num + 6f, dimensions.Y - 2f), Color.White);
            spriteBatch.Draw(_dividerTexture, new Vector2(num, innerDimensions.Y + 21f), null, Color.White, 0f, Vector2.Zero, new Vector2((GetDimensions().X + GetDimensions().Width - num) / 8f, 1f), SpriteEffects.None, 0f);
            Vector2 vector  = new Vector2(num + 6f, innerDimensions.Y + 29f);
            float   num2    = 200f;
            Vector2 vector2 = vector;

            DrawPanel(spriteBatch, vector2, num2);
            spriteBatch.Draw(Main.heartTexture, vector2 + new Vector2(5f, 2f), Color.White);
            vector2.X += 10f + (float)Main.heartTexture.Width;
            Utils.DrawBorderString(spriteBatch, _data.Player.statLifeMax + " HP", vector2 + new Vector2(0f, 3f), Color.White);
            vector2.X += 65f;
            spriteBatch.Draw(Main.manaTexture, vector2 + new Vector2(5f, 2f), Color.White);
            vector2.X += 10f + (float)Main.manaTexture.Width;
            Utils.DrawBorderString(spriteBatch, _data.Player.statManaMax + " MP", vector2 + new Vector2(0f, 3f), Color.White);
            vector.X += num2 + 5f;
            Vector2 vector3 = vector;
            float   num3    = 110f;

            DrawPanel(spriteBatch, vector3, num3);
            string text  = "";
            Color  color = Color.White;

            switch (_data.Player.difficulty)
            {
            case 0:
                text = "Softcore";
                break;

            case 1:
                text  = "Mediumcore";
                color = Main.mcColor;
                break;

            case 2:
                text  = "Hardcore";
                color = Main.hcColor;
                break;
            }
            vector3 += new Vector2(num3 * 0.5f - Main.fontMouseText.MeasureString(text).X * 0.5f, 3f);
            Utils.DrawBorderString(spriteBatch, text, vector3, color);
            vector.X += num3 + 5f;
            Vector2 vector4 = vector;
            float   num4    = innerDimensions.X + innerDimensions.Width - vector4.X;

            DrawPanel(spriteBatch, vector4, num4);
            TimeSpan playTime = _data.GetPlayTime();
            int      num5     = playTime.Days * 24 + playTime.Hours;
            string   text2    = ((num5 < 10) ? "0" : "") + num5 + playTime.ToString("\\:mm\\:ss");

            vector4 += new Vector2(num4 * 0.5f - Main.fontMouseText.MeasureString(text2).X * 0.5f, 3f);
            Utils.DrawBorderString(spriteBatch, text2, vector4, Color.White);
        }
Exemplo n.º 2
0
 public static async Task <bool> Export(Player plr)
 {
     return(await Task.Run(() =>
     {
         string path = Environment.CurrentDirectory + "\\PlayerExport\\" + plr.name + ".plr";
         try
         {
             if (!Directory.Exists(Environment.CurrentDirectory + "\\PlayerExport"))
             {
                 Directory.CreateDirectory(Environment.CurrentDirectory + "\\PlayerExport");
             }
             if (File.Exists(path))
             {
                 File.Copy(path, path + ".bak", true);
             }
             RijndaelManaged rijndaelManaged = new RijndaelManaged();
             using (Stream stream = new FileStream(path, FileMode.Create))
             {
                 using (CryptoStream cryptoStream = new CryptoStream(stream, rijndaelManaged.CreateEncryptor(Player.ENCRYPTION_KEY, Player.ENCRYPTION_KEY), CryptoStreamMode.Write))
                 {
                     PlayerFileData playerFileData = new PlayerFileData
                     {
                         Metadata = FileMetadata.FromCurrentSettings(FileType.Player),
                         Player = plr,
                         _isCloudSave = false,
                         _path = path
                     };
                     Main.LocalFavoriteData.ClearEntry(playerFileData);
                     using (BinaryWriter binaryWriter = new BinaryWriter(cryptoStream))
                     {
                         binaryWriter.Write(230);
                         playerFileData.Metadata.Write(binaryWriter);
                         binaryWriter.Write(plr.name);
                         binaryWriter.Write(plr.difficulty);
                         binaryWriter.Write(playerFileData.GetPlayTime().Ticks);
                         binaryWriter.Write(plr.hair);
                         binaryWriter.Write(plr.hairDye);
                         BitsByte bb = 0;
                         for (int i = 0; i < 8; i++)
                         {
                             bb[i] = plr.hideVisibleAccessory[i];
                         }
                         binaryWriter.Write(bb);
                         bb = 0;
                         for (int j = 0; j < 2; j++)
                         {
                             bb[j] = plr.hideVisibleAccessory[j + 8];
                         }
                         binaryWriter.Write(bb);
                         binaryWriter.Write(plr.hideMisc);
                         binaryWriter.Write((byte)plr.skinVariant);
                         binaryWriter.Write(plr.statLife);
                         binaryWriter.Write(plr.statLifeMax);
                         binaryWriter.Write(plr.statMana);
                         binaryWriter.Write(plr.statManaMax);
                         binaryWriter.Write(plr.extraAccessory);
                         binaryWriter.Write(plr.unlockedBiomeTorches);
                         binaryWriter.Write(plr.UsingBiomeTorches);
                         binaryWriter.Write(plr.downedDD2EventAnyDifficulty);
                         binaryWriter.Write(plr.taxMoney);
                         binaryWriter.Write(plr.hairColor.R);
                         binaryWriter.Write(plr.hairColor.G);
                         binaryWriter.Write(plr.hairColor.B);
                         binaryWriter.Write(plr.skinColor.R);
                         binaryWriter.Write(plr.skinColor.G);
                         binaryWriter.Write(plr.skinColor.B);
                         binaryWriter.Write(plr.eyeColor.R);
                         binaryWriter.Write(plr.eyeColor.G);
                         binaryWriter.Write(plr.eyeColor.B);
                         binaryWriter.Write(plr.shirtColor.R);
                         binaryWriter.Write(plr.shirtColor.G);
                         binaryWriter.Write(plr.shirtColor.B);
                         binaryWriter.Write(plr.underShirtColor.R);
                         binaryWriter.Write(plr.underShirtColor.G);
                         binaryWriter.Write(plr.underShirtColor.B);
                         binaryWriter.Write(plr.pantsColor.R);
                         binaryWriter.Write(plr.pantsColor.G);
                         binaryWriter.Write(plr.pantsColor.B);
                         binaryWriter.Write(plr.shoeColor.R);
                         binaryWriter.Write(plr.shoeColor.G);
                         binaryWriter.Write(plr.shoeColor.B);
                         for (int k = 0; k < plr.armor.Length; k++)
                         {
                             binaryWriter.Write(plr.armor[k].netID);
                             binaryWriter.Write(plr.armor[k].prefix);
                         }
                         for (int l = 0; l < plr.dye.Length; l++)
                         {
                             binaryWriter.Write(plr.dye[l].netID);
                             binaryWriter.Write(plr.dye[l].prefix);
                         }
                         for (int m = 0; m < 58; m++)
                         {
                             binaryWriter.Write(plr.inventory[m].netID);
                             binaryWriter.Write(plr.inventory[m].stack);
                             binaryWriter.Write(plr.inventory[m].prefix);
                             binaryWriter.Write(plr.inventory[m].favorited);
                         }
                         for (int n = 0; n < plr.miscEquips.Length; n++)
                         {
                             binaryWriter.Write(plr.miscEquips[n].netID);
                             binaryWriter.Write(plr.miscEquips[n].prefix);
                             binaryWriter.Write(plr.miscDyes[n].netID);
                             binaryWriter.Write(plr.miscDyes[n].prefix);
                         }
                         for (int num = 0; num < 40; num++)
                         {
                             binaryWriter.Write(plr.bank.item[num].netID);
                             binaryWriter.Write(plr.bank.item[num].stack);
                             binaryWriter.Write(plr.bank.item[num].prefix);
                         }
                         for (int num2 = 0; num2 < 40; num2++)
                         {
                             binaryWriter.Write(plr.bank2.item[num2].netID);
                             binaryWriter.Write(plr.bank2.item[num2].stack);
                             binaryWriter.Write(plr.bank2.item[num2].prefix);
                         }
                         for (int num3 = 0; num3 < 40; num3++)
                         {
                             binaryWriter.Write(plr.bank3.item[num3].netID);
                             binaryWriter.Write(plr.bank3.item[num3].stack);
                             binaryWriter.Write(plr.bank3.item[num3].prefix);
                         }
                         for (int num4 = 0; num4 < 40; num4++)
                         {
                             binaryWriter.Write(plr.bank4.item[num4].netID);
                             binaryWriter.Write(plr.bank4.item[num4].stack);
                             binaryWriter.Write(plr.bank4.item[num4].prefix);
                         }
                         binaryWriter.Write(plr.voidVaultInfo);
                         for (int num5 = 0; num5 < 22; num5++)
                         {
                             if (Main.buffNoSave[plr.buffType[num5]])
                             {
                                 binaryWriter.Write(0);
                                 binaryWriter.Write(0);
                             }
                             else
                             {
                                 binaryWriter.Write(plr.buffType[num5]);
                                 binaryWriter.Write(plr.buffTime[num5]);
                             }
                         }
                         for (int num6 = 0; num6 < 200; num6++)
                         {
                             if (plr.spN[num6] == null)
                             {
                                 binaryWriter.Write(-1);
                                 break;
                             }
                             binaryWriter.Write(plr.spX[num6]);
                             binaryWriter.Write(plr.spY[num6]);
                             binaryWriter.Write(plr.spI[num6]);
                             binaryWriter.Write(plr.spN[num6]);
                         }
                         binaryWriter.Write(plr.hbLocked);
                         for (int num7 = 0; num7 < plr.hideInfo.Length; num7++)
                         {
                             binaryWriter.Write(plr.hideInfo[num7]);
                         }
                         binaryWriter.Write(plr.anglerQuestsFinished);
                         for (int num8 = 0; num8 < plr.DpadRadial.Bindings.Length; num8++)
                         {
                             binaryWriter.Write(plr.DpadRadial.Bindings[num8]);
                         }
                         for (int num9 = 0; num9 < plr.builderAccStatus.Length; num9++)
                         {
                             binaryWriter.Write(plr.builderAccStatus[num9]);
                         }
                         binaryWriter.Write(plr.bartenderQuestLog);
                         binaryWriter.Write(plr.dead);
                         if (plr.dead)
                         {
                             binaryWriter.Write(plr.respawnTimer);
                         }
                         long value = DateTime.UtcNow.ToBinary();
                         binaryWriter.Write(value);
                         binaryWriter.Write(plr.golferScoreAccumulated);
                         plr.creativeTracker.Save(binaryWriter);
                         plr.SaveTemporaryItemSlotContents(binaryWriter);
                         CreativePowerManager.Instance.SaveToPlayer(plr, binaryWriter);
                         binaryWriter.Flush();
                         cryptoStream.FlushFinalBlock();
                         stream.Flush();
                     }
                 }
             }
             return true;
         }
         catch (Exception ex) { File.Delete(path); TShock.Log.ConsoleError(ex.Message); }
         return false;
     }));
 }
Exemplo n.º 3
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            base.DrawSelf(spriteBatch);
            CalculatedStyle innerDimensions = GetInnerDimensions();
            CalculatedStyle dimensions      = _playerPanel.GetDimensions();
            float           x = dimensions.X + dimensions.Width;

            Utils.DrawBorderString(spriteBatch, playerFileData.Name, new Vector2(x + 6f, dimensions.Y - 2f), Color.White, 1f, 0.0f, 0.0f, -1);
            spriteBatch.Draw(_dividerTexture, new Vector2(x, innerDimensions.Y + 21f), new Rectangle?(), Color.White, 0.0f, Vector2.Zero,
                             new Vector2((float)((GetDimensions().X + GetDimensions().Width - x) / 8.0), 1f), SpriteEffects.None, 0.0f);
            Vector2 vector2   = new Vector2(x + 6f, innerDimensions.Y + 29f);
            float   width1    = 200f;
            Vector2 position1 = vector2;

            this.DrawPanel(spriteBatch, position1, width1);
            spriteBatch.Draw(Main.heartTexture, position1 + new Vector2(5f, 2f), Color.White);
            position1.X += 10f + (float)Main.heartTexture.Width;
            Utils.DrawBorderString(spriteBatch, playerFileData.Player.statLifeMax + " HP", position1 + new Vector2(0.0f, 3f), Color.White, 1f, 0.0f, 0.0f, -1);
            position1.X += 65f;
            spriteBatch.Draw(Main.manaTexture, position1 + new Vector2(5f, 2f), Color.White);
            position1.X += 10f + (float)Main.manaTexture.Width;
            Utils.DrawBorderString(spriteBatch, playerFileData.Player.statManaMax + " MP", position1 + new Vector2(0.0f, 3f), Color.White, 1f, 0.0f, 0.0f, -1);
            vector2.X += width1 + 5f;
            Vector2 position2 = vector2;
            float   width2    = 110f;

            DrawPanel(spriteBatch, position2, width2);
            string text1 = "";
            Color  color = Color.White;

            switch (playerFileData.Player.difficulty)
            {
            case 0:
                text1 = "Softcore";
                break;

            case 1:
                text1 = "Mediumcore";
                color = Main.mcColor;
                break;

            case 2:
                text1 = "Hardcore";
                color = Main.hcColor;
                break;
            }
            Vector2 pos1 = position2 + new Vector2((float)(width2 * 0.5 - Main.fontMouseText.MeasureString(text1).X * 0.5), 3f);

            Utils.DrawBorderString(spriteBatch, text1, pos1, color, 1f, 0.0f, 0.0f, -1);
            vector2.X += width2 + 5f;
            Vector2 position3 = vector2;
            float   width3    = innerDimensions.X + innerDimensions.Width - position3.X;

            DrawPanel(spriteBatch, position3, width3);
            TimeSpan playTime = playerFileData.GetPlayTime();
            int      num      = playTime.Days * 24 + playTime.Hours;
            string   text2    = (num < 10 ? "0" : "") + num + playTime.ToString("\\:mm\\:ss");
            Vector2  pos2     = position3 + new Vector2((float)(width3 * 0.5 - Main.fontMouseText.MeasureString(text2).X * 0.5), 3f);

            Utils.DrawBorderString(spriteBatch, text2, pos2, Color.White, 1f, 0.0f, 0.0f, -1);
        }
Exemplo n.º 4
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            base.DrawSelf(spriteBatch);
            CalculatedStyle innerDimensions = GetInnerDimensions();
            CalculatedStyle dimensions      = _playerPanel.GetDimensions();
            float           num             = dimensions.X + dimensions.Width;

            Utils.DrawBorderString(spriteBatch, _data.Name, new Vector2(num + 6f, dimensions.Y - 2f), Color.White);
            spriteBatch.Draw(_dividerTexture.Value, new Vector2(num, innerDimensions.Y + 21f), null, Color.White, 0f, Vector2.Zero, new Vector2((GetDimensions().X + GetDimensions().Width - num) / 8f, 1f), SpriteEffects.None, 0f);
            Vector2 vector  = new Vector2(num + 6f, innerDimensions.Y + 29f);
            float   num2    = 200f;
            Vector2 vector2 = vector;

            DrawPanel(spriteBatch, vector2, num2);
            spriteBatch.Draw(TextureAssets.Heart.Value, vector2 + new Vector2(5f, 2f), Color.White);
            vector2.X += 10f + (float)TextureAssets.Heart.Width();
            Utils.DrawBorderString(spriteBatch, _data.Player.statLifeMax + Language.GetTextValue("GameUI.PlayerLifeMax"), vector2 + new Vector2(0f, 3f), Color.White);
            vector2.X += 65f;
            spriteBatch.Draw(TextureAssets.Mana.Value, vector2 + new Vector2(5f, 2f), Color.White);
            vector2.X += 10f + (float)TextureAssets.Mana.Width();
            Utils.DrawBorderString(spriteBatch, _data.Player.statManaMax + Language.GetTextValue("GameUI.PlayerManaMax"), vector2 + new Vector2(0f, 3f), Color.White);
            vector.X += num2 + 5f;
            Vector2 vector3 = vector;
            float   num3    = 140f;

            if (GameCulture.FromCultureName(GameCulture.CultureName.Russian).IsActive)
            {
                num3 = 180f;
            }
            DrawPanel(spriteBatch, vector3, num3);
            string text  = "";
            Color  color = Color.White;

            switch (_data.Player.difficulty)
            {
            case 0:
                text = Language.GetTextValue("UI.Softcore");
                break;

            case 1:
                text  = Language.GetTextValue("UI.Mediumcore");
                color = Main.mcColor;
                break;

            case 2:
                text  = Language.GetTextValue("UI.Hardcore");
                color = Main.hcColor;
                break;

            case 3:
                text  = Language.GetTextValue("UI.Creative");
                color = Main.creativeModeColor;
                break;
            }
            vector3 += new Vector2(num3 * 0.5f - FontAssets.MouseText.Value.MeasureString(text).X * 0.5f, 3f);
            Utils.DrawBorderString(spriteBatch, text, vector3, color);
            vector.X += num3 + 5f;
            Vector2 vector4 = vector;
            float   num4    = innerDimensions.X + innerDimensions.Width - vector4.X;

            DrawPanel(spriteBatch, vector4, num4);
            TimeSpan playTime = _data.GetPlayTime();
            int      num5     = playTime.Days * 24 + playTime.Hours;
            string   text2    = ((num5 < 10) ? "0" : "") + num5 + playTime.ToString("\\:mm\\:ss");

            vector4 += new Vector2(num4 * 0.5f - FontAssets.MouseText.Value.MeasureString(text2).X * 0.5f, 3f);
            Utils.DrawBorderString(spriteBatch, text2, vector4, Color.White);
        }