private void Update()
    {
        InstantiateData data = requests.buffer[0];

        requests.RemoveAt(0);
        DoInstantiate(ref data);
        if (requests.size == 0)
        {
            this.set_enabled(false);
        }
    }
    public override Stuff Instantiate(InstantiateData instantiateData)
    {
        var dialogue = Instantiate(dialoguePrefabs);

        foreach (var contents in instantiateData.dialogueContents)
        {
            dialogue.AddDialogue(contents.title, contents.content);
        }
        dialogue.SetTitle(instantiateData.containerTitle);
        dialogue.transform.position = instantiateData.worldPoint;
        dialogue.Factory            = this;
        return(dialogue);
    }
    public static void Request(Object master, Object original_object, Action <InstantiateData> callback, bool is_inactivate_instantiated_object = false)
    {
        if (!(original_object == null))
        {
            InstantiateData instantiateData = rymTPool <InstantiateData> .Get();

            instantiateData.master         = master;
            instantiateData.callback       = callback;
            instantiateData.originalObject = original_object;
            instantiateData.isInactivateInstantiatedObject = is_inactivate_instantiated_object;
            Request(instantiateData);
        }
    }
 private void Stock(InstantiateData data)
 {
     if (data.stockData != null)
     {
         data.stockData.originalObject = data.originalObject;
         Object instantiatedObject = data.instantiatedObject;
         data.stockData.instantiatedObject = instantiatedObject;
         stocks.Add(data.stockData);
         data.stockData = null;
         while (stocks.size >= 1)
         {
             RemoveStockAt(0, true);
         }
     }
 }
Exemplo n.º 5
0
        private static void ApplyObject(byte objectAction, byte[] data, string ownerId, IPrefabHandler handler)
        {
            var action = (ObjectActions)objectAction;

            switch (action)
            {
            case ObjectActions.Instantiate:
                var instantiateData = new InstantiateData();
                GsSerializer.Object.CallReadStream(instantiateData, data);

                // Call Callback
                GsLiveRealtime.Callbacks.OnBeforeInstantiateHandler?.Invoke(null,
                                                                            new OnBeforeInstantiate(instantiateData.PrefabName, ownerId, instantiateData.Position, instantiateData.Rotation));

                var obj = handler.Instantiate(instantiateData.PrefabName, instantiateData.Position, instantiateData.Rotation, ownerId, ownerId == GsLiveRealtime.CurrentPlayerMemberId);

                // Call Callback
                GsLiveRealtime.Callbacks.OnAfterInstantiateHandler?.Invoke(null,
                                                                           new OnAfterInstantiate(obj, instantiateData.PrefabName, ownerId, instantiateData.Position, instantiateData.Rotation));
                break;

            case ObjectActions.Destroy:
                var objectHandler = new GameObjectData();
                GsSerializer.Object.CallReadStream(objectHandler, data);

                // Call Callback
                GsLiveRealtime.Callbacks.OnDestroyObjectHandler?.Invoke(null,
                                                                        new OnDestroyObject(objectHandler.ObjectNameOrTag, objectHandler.IsTag));

                if (objectHandler.IsTag)
                {
                    handler.DestroyWithTag(objectHandler.ObjectNameOrTag);
                }
                else
                {
                    handler.DestroyWithName(objectHandler.ObjectNameOrTag);
                }
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
        /// <summary>
        ///  Instantiate the GameObject For All PLayers in Room
        ///  notes : Your prefab Must Save in Resources folder
        /// </summary>
        public static GameObject Instantiate(string prefabName, Vector3 position, Quaternion rotation)
        {
            if (!IsAvailable)
            {
                throw new GameServiceException("GsLiveRealtime is Not Available");
            }

            if (!FiroozehGameService.Core.GameService.GSLive.IsRealTimeAvailable())
            {
                throw new GameServiceException("RealTime is Not Available");
            }


            var instantiateData = new InstantiateData(prefabName, position, rotation);
            var gameObject      = _prefabHandler.Instantiate(prefabName, position, rotation, CurrentPlayerMemberId, true);

            SenderUtil.NetworkInstantiate(instantiateData);
            return(gameObject);
        }
    public static void RequestStock(RESOURCE_CATEGORY category, Object original_object, string name, bool is_one)
    {
        if (MonoBehaviourSingleton <InstantiateManager> .IsValid() && !(original_object == null))
        {
            int hashCode = name.GetHashCode();
            if (!is_one || (MonoBehaviourSingleton <InstantiateManager> .I.FindStockRequestIndex(category, name, hashCode) == -1 && MonoBehaviourSingleton <InstantiateManager> .I.FindStockIndex(category, name, hashCode) == -1))
            {
                InstantiateData instantiateData = rymTPool <InstantiateData> .Get();

                instantiateData.master         = MonoBehaviourSingleton <InstantiateManager> .I;
                instantiateData.callback       = MonoBehaviourSingleton <InstantiateManager> .I.Stock;
                instantiateData.originalObject = original_object;
                instantiateData.isInactivateInstantiatedObject = true;
                instantiateData.stockData = rymTPool <StockData> .Get();

                instantiateData.stockData.hashCode = name.GetHashCode();
                instantiateData.stockData.category = category;
                instantiateData.stockData.name     = name;
                Request(instantiateData);
            }
        }
    }
Exemplo n.º 8
0
        public byte[] GetBufferedData(NetDataWriter writer)
        {
            netStates.Clear();
            netIDs.Clear();

            netStates.Add(SerializeNetworkState(writer));
            netIDs.Add(ID);
            foreach (NetComponent nComponent in Owner.GetAllComponents <NetComponent>())
            {
                if (nComponent is INetPersistable netPersist)
                {
                    netStates.Add(NetLogicHelper.SerializePersistable(netPersist));
                }
                else
                {
                    netStates.Add(null); // Padding for deserialization.
                }
                netIDs.Add(nComponent.ID);
            }

            InstantiateData buffer = new InstantiateData(netStates, netIDs.ToArray());

            return(buffer.Serialize(new NetDataWriter()));
        }
Exemplo n.º 9
0
    public override Stuff Instantiate(InstantiateData instantiateData)
    {
        GameObject @object = new GameObject(instantiateData.fileName);

        StuffData data = new StuffData
        {
            fileName = instantiateData.fileName,
            texture  = (Texture)ConfigManager.GetConfig(folderName, instantiateData.fileName)
        };

        var stuff = @object.AddComponent <Stuff>();

        stuff.Data               = data;
        stuff.Factory            = this;
        stuff.transform.position = instantiateData.worldPoint;

        RawImage image = @object.AddComponent <RawImage>();

        image.texture = data.texture;
        image.SetNativeSize();

        @object.transform.localScale *= Screen.height / image.texture.height * screenRatio;
        return(stuff);
    }