コード例 #1
0
        public virtual void SerializeToXmlElement <T>(T stored_object, XmlElement element)
        {
            StoredObject so = stored_object as StoredObject;

            element.Name = stored_object.GetType().Name;
            element.SetAttribute("Id", so.Id);
            element.SetAttribute("IsCached", so.IsCached);
            element.SetAttribute("IsIdOnly", so.IsIdOnly);
            element.SetAttribute("IsLatestVersion", so.IsLatestVersion);
            element.SetAttribute("LockCount", so.LockCount);
            // todo: serialize objectstore?
            element.SetAttribute("ObjectStore", so.ObjectStore.StoreName);
            element.SetAttribute("ObjectTypeId", so.ObjectType.TypeId);
            // todo: serialize provider?
            element.SetAttribute("Provider", so.Provider.Name);
            // todo: serialize restriction?
            element.SetAttribute("RestrictionId", so.Restriction.Id);
            element.SetAttribute("Revision", so.Revision);
            XmlDocument owner_doc   = element.OwnerDocument;
            XmlElement  uidsElement = owner_doc.CreateElement("UIDs");

            element.AppendChild(uidsElement);
            foreach (UId uid in so.UIds)
            {
                XmlElement uidElement = owner_doc.CreateElement("UID");
                SerializeToXmlElement <UId>(uid, uidElement);
                uidsElement.AppendChild(uidElement);
                uidElement.SetAttribute("IdValue", uid.IdValue);
            }
        }
コード例 #2
0
 public void Add(string key, StoredObject storeObject)
 {
     _store.AddOrUpdate(
         key,
         storeObject,
         (k, v) => storeObject
         );
 }
コード例 #3
0
    private void InitialiseStorage()
    {
        _storage = new Dictionary <string, StoredObject[]>();
        // make hierachy
        GameObject objectPoolHier = new GameObject();

        objectPoolHier.name = "objectpool";

        foreach (ToStore itemQua in _toStore)
        {
            StoredObject[] newObjects = new StoredObject[itemQua.quantity];

            // make hierachy
            GameObject newObjectHeir = new GameObject();
            newObjectHeir.name = itemQua.obj.name;            // + "s";
            newObjectHeir.transform.SetParent(objectPoolHier.transform);


            for (int i = 0; i < newObjects.Length; i++)
            {
                newObjects[i].obj       = Instantiate(itemQua.obj, new Vector3(-1000.0F, -1000.0F, -1000.0F), Quaternion.Euler(Vector3.zero)) as GameObject;
                newObjects [i].obj.name = itemQua.obj.name;
                newObjects [i].obj.transform.SetParent(newObjectHeir.transform);
                newObjects [i].heirParent = newObjectHeir.transform;

                Rigidbody rb = newObjects [i].obj.GetComponent <Rigidbody> ();
                if (rb != null)
                {
                    rb.Sleep();
                    rb.velocity        = Vector3.zero;
                    rb.angularVelocity = Vector3.zero;
                    //rb.isKinematic = true;
                    //rb.useGravity = false;
                }
                ParticleSystem ps = newObjects[i].obj.GetComponent <ParticleSystem>();
                if (ps != null)
                {
                    ps.Stop();
                }
                ParticleSystem psc = newObjects[i].obj.GetComponentInChildren <ParticleSystem>();
                if (psc != null)
                {
                    psc.Stop();
                }

                newObjects[i].obj.SetActive(false);



                newObjects [i].beingUsed = false;
            }


            //Debug.Log (newObjects[0].obj.name);
            _storage.Add(itemQua.obj.name, newObjects);
        }
    }
コード例 #4
0
 public static bool ApplyStoredObject(StoredObject storedObject, object target)
 {
     if (storedObject.objectType != target.GetType())
     {
         return(false);
     }
     storedObject.ApplyTo(target);
     return(true);
 }
コード例 #5
0
 public static bool GetStoredObject(out StoredObject storedObject, object original, Dictionary <string, string> id = null)
 {
     storedObject = null;
     if (original == null)
     {
         return(false);
     }
     storedObject = new StoredObject(original, id);
     return(true);
 }
コード例 #6
0
    public void RegisterKey(StoredObject key)
    {
        PublicKey newKey = gameObject.AddComponent(key.objectType) as PublicKey;

        if (!ReflectionUtil.ApplyStoredObject(key, newKey))
        {
            return;
        }
        newKey.isAvailable = true;
        keys.Add(newKey);
    }
コード例 #7
0
ファイル: Player.cs プロジェクト: gustavnilsson14/ldjam48
 public bool InstallComponent(out EntityComponent installedComponent, StoredObject storedObject)
 {
     installedComponent = Player.I.gameObject.AddComponent(storedObject.objectType) as EntityComponent;
     if (installedComponent == null)
     {
         return(false);
     }
     ReflectionUtil.ApplyStoredObject(storedObject, installedComponent);
     onInstall.Invoke(installedComponent);
     return(true);
 }
コード例 #8
0
 public bool FetchItem(out StoredObject storedObject, string id)
 {
     storedObject = storedComponents.Find(s => s.id["name"] == id);
     if (storedObject == null)
     {
         return(false);
     }
     storedComponents.Remove(storedObject);
     SortComponents();
     return(true);
 }
コード例 #9
0
ファイル: PlanterScript.cs プロジェクト: B-Noone/Servare
 bool CheckSpawners()
 {
     for (int i = 0; i < planters.Count; i++)
     {
         script = planters[i].GetComponent <StoredObject>();
         if (!script.empty)
         {
             return(false);
         }
     }
     return(true);
 }
コード例 #10
0
ファイル: SqlCommand.cs プロジェクト: gustavnilsson14/ldjam48
    private bool HandleUseConsumable(out string result, StoredObject storedObject)
    {
        result = "";
        Consumable consumable = Player.I.gameObject.AddComponent(storedObject.objectType) as Consumable;

        if (consumable == null)
        {
            return(false);
        }
        consumable.Consume(out result);
        return(true);
    }
コード例 #11
0
ファイル: SqlCommand.cs プロジェクト: gustavnilsson14/ldjam48
 private bool HandleGenericConsumable <T>(out string result, out StoredObject storedObject, ParsedCommand parsedCommand)
 {
     result       = "";
     storedObject = null;
     if (!ValidateConsumableArgumentCommand <T>(out result, parsedCommand))
     {
         return(false);
     }
     Player.I.TryGetComponent <SqlComponent>(out SqlComponent sqlComponent);
     sqlComponent.FetchItem(out storedObject, parsedCommand.arguments[1]);
     return(true);
 }
コード例 #12
0
ファイル: PlanterScript.cs プロジェクト: B-Noone/Servare
 void RespawnObject()
 {
     for (int i = 0; i < planters.Count; i++)
     {
         script = planters[i].GetComponent <StoredObject>();
         Vector3 tempPos = planters[i].transform.position;
         tempPos.y = respawnObject.transform.lossyScale.y / 2;
         GameObject newObj = Instantiate(respawnObject, tempPos, Quaternion.identity);
         newObj.transform.SetParent(GameObject.Find(respawnObject.name + "s").transform);
         newObj.name = respawnObject.name;
         script.setPossesion(newObj);
     }
 }
コード例 #13
0
ファイル: Misc.cs プロジェクト: glugalug/GuideEditingMisc
 public static bool UidsContainsIdValue(StoredObject storedObject, string idValue)
 {
     if (storedObject.UIds == null)
     {
         return(false);
     }
     foreach (UId uid in storedObject.UIds)
     {
         if (uid.IdValue == idValue)
         {
             return(true);
         }
     }
     return(false);
 }
コード例 #14
0
    private void InitialiseStorage()
    {
        // make hierachy
        GameObject objectPoolHier = new GameObject();

        objectPoolHier.name = "objectpool";

        foreach (ToStore itemQua in _toStore)
        {
            StoredObject[] newObjects = new StoredObject[itemQua.quantity];

            // make hierachy
            GameObject newObjectHeir = new GameObject();
            newObjectHeir.name = itemQua.obj.name + "s";
            newObjectHeir.transform.SetParent(objectPoolHier.transform);


            for (int i = 0; i < newObjects.Length; i++)
            {
                newObjects[i].obj       = Instantiate(itemQua.obj, new Vector3(-1000.0F, -1000.0F, -1000.0F), Quaternion.Euler(Vector3.zero)) as GameObject;
                newObjects [i].obj.name = itemQua.obj.name;
                newObjects [i].obj.transform.SetParent(newObjectHeir.transform);

                Rigidbody rb = newObjects [i].obj.GetComponent <Rigidbody> ();
                if (rb != null)
                {
                    rb.Sleep();
                    rb.velocity        = Vector3.zero;
                    rb.angularVelocity = Vector3.zero;
                    rb.isKinematic     = true;
                    rb.useGravity      = false;
                }


                newObjects [i].obj.SetActive(false);



                newObjects [i].beingUsed = false;
            }


            _storage.Add(itemQua.obj.name, newObjects);
        }
    }
コード例 #15
0
        public Task ExecuteAsync(StoreObjectCommand command)
        {
            using (var memoryStream = new MemoryStream())
            {
                command.DataStream.Position = 0;
                command.DataStream.CopyTo(memoryStream);
                var newStoredObject = new StoredObject
                {
                    LastModified = _time.UtcNow,
                    Data         = memoryStream.ToArray()
                };
                _memoryObjectStore.Add(
                    command.Key,
                    newStoredObject
                    );
                Console.WriteLine($"Wrote {command.DataStream.Length} bytes to {command.Key}");
            }

            return(Task.CompletedTask);
        }
コード例 #16
0
ファイル: SerializerCache.cs プロジェクト: wobba/mmf
 public override int GetHashCode()
 {
     return(StoredObject.GetHashCode());
 }
コード例 #17
0
 public void AddItem(StoredObject item)
 {
     storedComponents.Add(item);
     SortComponents();
 }