Example #1
0
        public MeshAssembly Get(int id)
        {
            if (id <= 0)
            {
                return(null);
            }
            MeshAssembly mesh_assembly = null;

            if (_mesh_assemblyMap.TryGetValue(id, out mesh_assembly))
            {
                _refMap[mesh_assembly.Id] = GetCurrentTimeTick();
                ReleaseData(false);
                return(mesh_assembly);
            }

            mesh_assembly = DbClassLoader.Instance.QueryData <MeshAssembly>(ConfigDataBase.Instance.DbAccessorFactory, id);
            if (mesh_assembly == null)
            {
#if UNITY_EDITOR
                LoggerManager.Instance.Warn("Invalid `id` value in table `mesh_assembly` : " + id);
#endif
                return(null);
            }

            _mesh_assemblyMap.Add(id, mesh_assembly);
            if (_refMap.ContainsKey(mesh_assembly.Id) == false)
            {
                _refMap.Add(mesh_assembly.Id, GetCurrentTimeTick());
            }

            ReleaseData(false);
            return(mesh_assembly);
        }
Example #2
0
        public void MemoryUpdate(int key, MeshAssembly mesh_assembly)
        {
            MeshAssemblys.RemoveAll(n => n.Id == key);
            if (_mesh_assemblyMap.ContainsKey(key))
            {
                _mesh_assemblyMap.Remove(key);
                if (_refMap.ContainsKey(key))
                {
                    _refMap.Remove(key);
                }
            }

            if (mesh_assembly != null)
            {
                MeshAssemblys.Add(mesh_assembly);
                _mesh_assemblyMap.Add(key, mesh_assembly);
                _refMap.Add(key, DateTime.Now.Ticks);
            }
        }