Beispiel #1
0
        private void ForceItem(Camera eye, ObjectBlock @object, ScenarioInstanceBlock instance)
        {
            DrawManager.ClearVisible( );
            using (_bucketManager.Begin( ))
            {
                CacheKey key;
                if ([email protected](out key))
                {
                    return;
                }

                var modelBlock  = @object?.Model.Get <ModelBlock>(key);
                var renderModel = modelBlock?.RenderModel.Get <RenderModelBlock>(key);

                if (renderModel == null)
                {
                    return;
                }

                if (eye.CanSee(instance, @object))
                {
                    Dispatch(eye, @object, instance);
                }
            }
        }
Beispiel #2
0
        /// <summary>
        ///     Loops through each instance and dispatches them for processing
        /// </summary>
        private void ProcessPalette(Camera eye, CacheKey key, IEnumerable <IH2ObjectInstance> instanceCollection,
                                    IReadOnlyList <IH2ObjectPalette> paletteCollection)
        {
            foreach (var instance in instanceCollection)
            {
                var paletteIndex = instance.PaletteIndex;

                var objectBlock = paletteCollection[paletteIndex].ObjectReference.Get <ObjectBlock>(key);
                var modelBlock  = objectBlock?.Model.Get <ModelBlock>(key);
                var renderModel = modelBlock?.RenderModel.Get <RenderModelBlock>(key);

                if (renderModel == null)
                {
                    continue;
                }

                if (eye.CanSee(instance, objectBlock))
                {
                    Dispatch(eye, objectBlock, instance);
                }
            }
        }