public void TakeLoot(NetLoot newInventory) { List <Item> items = newInventory.GetItems(); LoadController.instance.LoadRuntimeItems(items, ItemsLoaded); focusPlayer = newInventory.ownerID; }
public void LookAtLoot(LootView view, int playerID) { NetLoot loot = DatabaseControl.GetLoot(view.ID); loot.ownerID = playerID; ServerSend.LookAtLoot(playerID, loot); loot.ownerID = -1; }
public static void JsonObject(Packet packet) { int id = packet.ReadInt(); if (!GameManager.players.ContainsKey(id)) { return; } string json = packet.ReadString(); JsonSerializerSettings settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }; NetEntity jsonObj = JsonConvert.DeserializeObject <NetEntity>(json, settings); if (jsonObj is NetAnimator) { GameManager.players[id].Animator.Set(jsonObj as NetAnimator); return; } if (jsonObj is BuildingData) { GameManager.instance.SpawnStructure(jsonObj as BuildingData); return; } if (jsonObj is NetItem) { NetItem netItem = jsonObj as NetItem; if (netItem is Netwearable) { Netwearable netWear = netItem as Netwearable; Wearable wear = new Wearable(); wear.Initialize(netWear); GameManager.instance.ChangeInventory(id, wear); } if (netItem is NetHoldable) { NetHoldable netHold = netItem as NetHoldable; Holdable hold = new Holdable(); hold.Initialize(netHold); GameManager.instance.ChangeInventory(id, hold); } return; } if (jsonObj is NetLoot) { NetLoot netLoot = jsonObj as NetLoot; GameManager.instance.CheckLoot(netLoot); } if (jsonObj is NetInventory) { Debug.Log("update inventory"); } }
public static void LookAtLoot(int player, NetLoot loot) { using (Packet packet = new Packet((int)ServerPackets.jsonObject)) { packet.Write(player); JsonSerializerSettings settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All, ReferenceLoopHandling = ReferenceLoopHandling.Ignore }; string json = JsonConvert.SerializeObject(loot, settings); packet.Write(json); SendTCPDataToAll(packet); } }
public void SpawnLoot(NetLoot netLoot) { if (Loot.ContainsKey(netLoot.lootID)) { UpdateLoot(netLoot); return; } GameObject lootGO = new GameObject(); LootView lootView = lootGO.AddComponent<LootView>(); lootView.Initialize(netLoot.GetItems(), netLoot.lootID); lootGO.transform.position = netLoot.Position; lootGO.transform.rotation = netLoot.Rotation; Loot.Add(netLoot.lootID, lootView); }
public void UpdateLoot(NetLoot loot) { NetLoot[] updatedLoot = new NetLoot[1] { loot }; UpdateLootForPlayers(updatedLoot); if (loot.Items.Length < 1) { DestroyLoot(loot); return; } ReActivateLoot(loot); }
void AddLoot(NetLoot loot) { if (_database.WorldItems == null) { _database.WorldItems = new JsonWorldLoot(); } List <NetLoot> worldLoot = new List <NetLoot>(); if (_database.WorldItems.Loot != null) { worldLoot = _database.WorldItems.Loot.ToList(); } worldLoot.Add(loot); _database.WorldItems.Loot = worldLoot.ToArray(); // very very ugly baby! this should be a database in the future. _loot.Add(loot.lootID, loot); }
public void CheckLoot(NetLoot netLoot) { if (netLoot.Items.Length < 1) { _lootControl.DespawnLoot(netLoot.lootID); return; } if (netLoot.ownerID == -1) { _lootControl.SpawnLoot(netLoot); return; } if (netLoot.ownerID == GameClient.instance.myId) { _lootControl.PickUpLoot(netLoot); return; } }
public static void JsonPackate(int fromPlayer, Packet packet) { int id = packet.ReadInt(); string json = packet.ReadString(); JsonSerializerSettings settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }; NetEntity netPackage = JsonConvert.DeserializeObject <NetEntity>(json, settings); if (netPackage is BuildingData) { NetworkManager.instance.ConstructionControl.BuildBuilding(id, (BuildingData)netPackage); } if (netPackage is NetItem) { NetItem netItem = netPackage as NetItem; if (netItem is Netwearable) { Netwearable netWear = netItem as Netwearable; NetworkManager.instance.InventoryControl.ChangeWear(netWear, id); } if (netItem is NetHoldable) { NetHoldable netHold = netItem as NetHoldable; Debug.Log($"got holdable: {netHold.Name}"); } } if (netPackage is NetLoot) { NetLoot netLoot = netPackage as NetLoot; if (netLoot.ownerID == -1) { NetworkManager.instance.LootControl.UpdateLoot(netLoot); } else { NetworkManager.instance.InventoryControl.TakeLoot(netLoot); } } }
public void TakeItems(Dictionary <string, ItemSlot> inventory, List <ItemSlot> remainingLoot, int lootID) { List <Item> lootItems = new List <Item>(); foreach (var loot in remainingLoot) { if (loot.RuntimeItem != null) { lootItems.Add(loot.RuntimeItem.Item); } } List <Item> inventoryItems = new List <Item>(); foreach (var item in inventory) { if (item.Value.RuntimeItem != null) { inventoryItems.Add(item.Value.RuntimeItem.Item); } } NetLoot netLoot = new NetLoot(lootItems); netLoot.lootID = lootID; netLoot.ownerID = -1; NetLoot netInventory = new NetLoot(inventoryItems); netInventory.lootID = -1; netInventory.ownerID = GameClient.instance.myId; JsonSerializerSettings settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All, ReferenceLoopHandling = ReferenceLoopHandling.Ignore }; string jsonInventory = JsonConvert.SerializeObject(netInventory, settings); string Jsonloot = JsonConvert.SerializeObject(netLoot, settings); ClientSend.SendJsonPackage(jsonInventory); ClientSend.SendJsonPackage(Jsonloot); }
public void PickUpLoot(NetLoot loot) { InventoryControl.ShowLoot(loot); }
public void ShowLoot(NetLoot netItems) { List <Item> newItmes = netItems.GetItems(); _inventoryView.LoadLoot(newItmes, netItems.ownerID, netItems.lootID); }
public void AddLoot(LootView lootView) { NetLoot netLoot = new NetLoot(lootView); AddLoot(netLoot); }
public void UpdateLoot(NetLoot netItems) { List <Item> items = netItems.GetItems(); LoadController.instance.LoadRuntimeItems(items, RunItemsLoaded); }
private void DestroyLoot(NetLoot loot) { DatabaseControl.RemoveLoot(Loot[loot.lootID].gameObject.GetComponent <LootView>().ID); Destroy(Loot[loot.lootID].gameObject); Loot.Remove(loot.lootID); }
void ReActivateLoot(NetLoot loot) { Loot[loot.lootID].UpdateLoot(loot); Loot[loot.lootID].GetComponent <BoxCollider>().enabled = true; }
void UpdateLoot(NetLoot netLoot) { //Loot[netLoot.lootID].Items = netLoot.GetItems(); }