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]); }