Exemple #1
0
        public IModel LoadModel(string modelName)
        {
            if (modelName == null)
            {
                throw new ArgumentNullException(nameof(modelName));
            }

            if (_models == null)
            {
                throw new InvalidOperationException($"Cannot load model \"{modelName}\"; network string list not created yet");
            }

            var platformModelName = NetUtilities.ConvertToPlatformPath(modelName);
            var networkModelName  = NetUtilities.ConvertToNetworkPath(modelName);

            if (!_nameToIndex.TryGetValue(networkModelName, out var index))
            {
                //See if it's a server loaded model
                index = _models.IndexOf(networkModelName);

                index = InternalLoadModel(networkModelName, platformModelName, index != -1 ? index : (int?)null);
            }

            return(_modelManager[platformModelName]);
        }
        public IModel LoadModel(string modelName)
        {
            if (modelName == null)
            {
                throw new ArgumentNullException(nameof(modelName));
            }

            if (_models == null)
            {
                throw new InvalidOperationException($"Cannot load model \"{modelName}\"; network string list not created yet");
            }

            var platformModelName = NetUtilities.ConvertToPlatformPath(modelName);
            //TODO: could rework string lists to internally handle this at some point
            var networkModelName = NetUtilities.ConvertToNetworkPath(modelName);

            var index = _models.IndexOf(networkModelName);

            if (index == -1)
            {
                var model = _modelManager.Load(platformModelName);

                //All models loaded by the server are required by default
                index = _models.Add(networkModelName, new ModelPrecacheData
                {
                    Flags = (uint)ModelPrecacheFlags.Required
                });
            }

            return(_modelManager[platformModelName]);
        }