From 2e8823434c298e3052674add48d54b83fb658cae Mon Sep 17 00:00:00 2001
From: AkjaHAsLk1IALk0MasH <46046453+AgaSpace@users.noreply.github.com>
Date: Sun, 14 May 2023 10:30:52 +0700
Subject: [PATCH] Updated the PlayerData constructors.
Added a new constructor with a parameter that is responsible for installing TShock items into inventory.
The `TSPlayer` parameter was not used, so I labeled the constructor obsolete.
---
TShockAPI/PlayerData.cs | 26 ++++++++++++++++++--------
1 file changed, 18 insertions(+), 8 deletions(-)
diff --git a/TShockAPI/PlayerData.cs b/TShockAPI/PlayerData.cs
index 2a8dd41f..aae27672 100644
--- a/TShockAPI/PlayerData.cs
+++ b/TShockAPI/PlayerData.cs
@@ -23,6 +23,7 @@ using Terraria.Localization;
using Terraria.GameContent.NetModules;
using Terraria.Net;
using Terraria.ID;
+using System;
namespace TShockAPI
{
@@ -63,18 +64,27 @@ namespace TShockAPI
public int unlockedSuperCart;
public int enabledSuperCart;
- public PlayerData(TSPlayer player)
+ ///
+ /// Sets the default values for the inventory.
+ ///
+ [Obsolete("The player argument is not used.")]
+ public PlayerData(TSPlayer player) : this(true) { }
+
+ ///
+ /// Sets the default values for the inventory.
+ ///
+ /// Is it necessary to load items from TShock's config
+ public PlayerData(bool includingStarterInventory = true)
{
for (int i = 0; i < NetItem.MaxInventory; i++)
- {
this.inventory[i] = new NetItem();
- }
- for (int i = 0; i < TShock.ServerSideCharacterConfig.Settings.StartingInventory.Count; i++)
- {
- var item = TShock.ServerSideCharacterConfig.Settings.StartingInventory[i];
- StoreSlot(i, item.NetId, item.PrefixId, item.Stack);
- }
+ if (includingStarterInventory)
+ for (int i = 0; i < TShock.ServerSideCharacterConfig.Settings.StartingInventory.Count; i++)
+ {
+ var item = TShock.ServerSideCharacterConfig.Settings.StartingInventory[i];
+ StoreSlot(i, item.NetId, item.PrefixId, item.Stack);
+ }
}
///