예제 #1
0
    void InitSlots(bool _isServer)
    {
        var syncData = new StorageSlotsUUIDSync();

        storageSlots = new StorageSlots();
        for (int i = 0; i < maxSlots; i++)
        {
            InventorySlot invSlot = null;
            if (_isServer)
            {
                invSlot = new InventorySlot(System.Guid.NewGuid(), "inventory" + i);
                storageSlots.inventorySlots.Add(invSlot);
                syncData.UUIDs.Add(invSlot.UUID);
            }
            else
            {
                invSlot = new InventorySlot(System.Guid.Empty, "inventory" + i);
                storageSlots.inventorySlots.Add(invSlot);
            }
            InventoryManager.AddSlot(invSlot, _isServer);
        }

        if (syncData.UUIDs.Count != 0)
        {
            StorageObjectUUIDSyncMessage.SendAll(gameObject, JsonUtility.ToJson(syncData));
        }
    }
예제 #2
0
    IEnumerator InitSlots(bool _isServer)
    {
        //Wait for onscene change event to take place on InventoryManager
        yield return(YieldHelper.EndOfFrame);

        var syncData = new StorageSlotsUUIDSync();

        storageSlots = new StorageSlots();
        for (int i = 0; i < maxSlots; i++)
        {
            InventorySlot invSlot = null;
            if (_isServer)
            {
                invSlot = new InventorySlot(System.Guid.NewGuid(), "inventory" + i);
                storageSlots.inventorySlots.Add(invSlot);
                syncData.UUIDs.Add(invSlot.UUID);
            }
            else
            {
                invSlot = new InventorySlot(System.Guid.Empty, "inventory" + i);
                storageSlots.inventorySlots.Add(invSlot);
            }

            InventoryManager.AddSlot(invSlot, _isServer);
        }

        yield return(YieldHelper.DeciSecond);

        if (syncData.UUIDs.Count != 0)
        {
            StorageObjectUUIDSyncMessage.SendAll(gameObject, JsonUtility.ToJson(syncData));
        }
    }
예제 #3
0
 void InitSlots()
 {
     storageSlots = new StorageSlots();
     for (int i = 0; i < maxSlots; i++)
     {
         InventorySlot invSlot = new InventorySlot(EquipSlot.inventory01 + i, false, gameObject);
         storageSlots.inventorySlots.Add(invSlot);
     }
 }
        public StorageSlotsInitialSyncProcessor(IPacketSender packetSender, StorageSlots slots, Vehicles vehicles)
        {
            this.packetSender = packetSender;
            this.slots        = slots;
            this.vehicles     = vehicles;

            DependentProcessors.Add(typeof(VehicleInitialSyncProcessor));
            DependentProcessors.Add(typeof(InventoryItemsInitialSyncProcessor)); // Batteries can be in a battery slots from a item
            DependentProcessors.Add(typeof(EquippedItemInitialSyncProcessor));   // Just to be sure, for cyclops mode persistence. See "Cyclops.SetAdvancedModes"
        }
예제 #5
0
        public StorageSlotsInitialSyncProcessor(IPacketSender packetSender, StorageSlots slots, Vehicles vehicles)
        {
            this.packetSender = packetSender;
            this.slots        = slots;
            this.vehicles     = vehicles;

            DependentProcessors.Add(typeof(VehicleInitialSyncProcessor));
            //Items with batteries can also have battery slots
            DependentProcessors.Add(typeof(InventoryItemsInitialSyncProcessor));
        }
예제 #6
0
    public void NotifyPlayer(GameObject recipient)
    {
        //Validate data and make sure it is being pulled from Server List (Fixes Host problems)
        StorageSlots slotsData = new StorageSlots();

        foreach (InventorySlot slot in storageSlots.inventorySlots)
        {
            slotsData.inventorySlots.Add(InventoryManager.GetSlotFromUUID(slot.UUID, true));
        }

        StorageObjectSyncMessage.Send(recipient, gameObject, JsonUtility.ToJson(slotsData));
    }
예제 #7
0
 public StorageSlotAddItemProcessor(IPacketSender packetSender, StorageSlots storageSlots)
 {
     this.packetSender = packetSender;
     this.storageSlots = storageSlots;
 }