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");
        }
    }
Exemplo n.º 4
0
 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);
    }
Exemplo n.º 7
0
    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);
    }
Exemplo n.º 8
0
 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;
     }
 }
Exemplo n.º 9
0
    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);
    }
Exemplo n.º 13
0
    public void AddLoot(LootView lootView)
    {
        NetLoot netLoot = new NetLoot(lootView);

        AddLoot(netLoot);
    }
Exemplo n.º 14
0
    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();
 }