void LoadDataPlayer_Currency(GameObject player) { PlayerCurrencyComponent manager = player.GetComponent <PlayerCurrencyComponent>(); foreach (TablePlayerCurrencies row in Query <TablePlayerCurrencies>("SELECT * FROM " + nameof(TablePlayerCurrencies) + " WHERE owner=?", player.name)) { if (row.slot < manager.GetCapacity) { if (String.IsNullOrWhiteSpace(row.name)) { manager.AddEntry(null, row.slot, 0, 0); } else if (CurrencyTemplate.data.TryGetValue(row.name.GetDeterministicHashCode(), out CurrencyTemplate template)) { manager.AddEntry(template, row.slot, row.value, row.timeStamp); } else { debug.LogWarning("[LoadData] Skipped currency " + row.name + " for " + player.name + " as it was not found in Resources."); } } else { debug.LogWarning("[LoadData] Skipped currency slot " + row.slot + " for " + player.name + " because it exceeds capacity " + manager.GetCapacity); } } }
// ------------------------------------------------------------------------------- // ThrottledUpdate // ------------------------------------------------------------------------------- protected override void ThrottledUpdate() { if (!networkManager || networkManager.state != NetworkState.Game) { Hide(); } else { Show(); } if (!localPlayer) { return; } if (currencyManager == null) { currencyManager = localPlayer.GetComponent <PlayerCurrencyComponent>(); } for (int i = 0; i < root.transform.childCount; i++) { GameObject.Destroy(root.transform.GetChild(i).gameObject); } int count = 0; foreach (CurrencySyncStruct _entry in currencyManager.GetEntries(true, SortOrder.Priority)) { CurrencySyncStruct entry = _entry; GameObject go = GameObject.Instantiate(slotPrefab.gameObject); go.transform.SetParent(root.transform, false); go.GetComponent <UICurrencySlotHorizontal>().Init(ref entry); count++; if (maxEntries > 0 && count > maxEntries) { break; } } }
void SaveDataPlayer_Currency(GameObject player, bool isOnline) { // you should delete all data of this player first, to prevent duplicates DeleteDataPlayer_Currency(player.name); PlayerCurrencyComponent manager = player.GetComponent <PlayerCurrencyComponent>(); List <CurrencySyncStruct> list = manager.GetEntries(false); for (int i = 0; i < list.Count; i++) { CurrencySyncStruct entry = list[i]; InsertOrReplace(new TablePlayerCurrencies { owner = player.name, name = entry.name, slot = entry.slot, value = entry.value, timeStamp = entry.timeStamp }); } }
// ------------------------------------------------------------------------------- // Init // ------------------------------------------------------------------------------- public override void Init(ref CurrencySyncStruct _entry) { base.Init(ref _entry); currencyManager = localPlayer.GetComponent <PlayerCurrencyComponent>(); if (entry.Valid) { if (backgroundImage) { backgroundImage.sprite = entry.template.backgroundIcon; } if (borderImage) { borderImage.sprite = entry.template.rarity.borderImage; } image.sprite = entry.template.smallIcon; textValue.text = entry.value + "/" + entry.GetCapacity(localPlayer); } }
void CreateDefaultDataPlayer_Currency(GameObject player) { PlayerCurrencyComponent manager = player.GetComponent <PlayerCurrencyComponent>(); manager.CreateDefaultDataPlayer(); }