private bool MoveNextStain() { if (!_IsCurrentStained) { return(false); } if (!_StainEnumerator.MoveNext()) { return(false); } var variant = new ModelVariantIdentifier { ImcVariant = _CurrentVariant, StainKey = null }; if (_StainEnumerator.Current.Key > 0) { variant.StainKey = _StainEnumerator.Current.Key; } CurrentComponent = new Content.ContentModel(_Engine, variant, _CurrentModel); CurrentTargetFile = GetTargetFile(_EquipmentIterator.Current, _StainEnumerator.Current); CurrentName = GetName(_EquipmentIterator.Current, _StainEnumerator.Current); return(true); }
public override bool MoveNext() { if (MoveNextStain()) { return(true); } while (_EquipmentIterator.MoveNext()) { var eq = _EquipmentIterator.Current; var charType = eq.GetModelCharacterType(); charType += 100; _CurrentModel = eq.GetModel(charType, out _CurrentVariant); if (_CurrentModel == null) { continue; } RenderFromOppositeSide = eq.ItemUICategory.Key == 1 || eq.ItemUICategory.Key == 10; // PGL/MNK and books CurrentBoundingBox = _CurrentModel.BoundingBoxes.Value2.Scale(1.35f); // Not sure what the first one is for, but some are very strange. if (_StainEnumerator == null) { _IsCurrentStained = false; } else { _IsCurrentStained = eq.IsDyeable; } if (_IsCurrentStained) { _StainEnumerator.Reset(); MoveNextStain(); } else { CurrentComponent = new Content.ContentModel(_Engine, _CurrentVariant, _CurrentModel); CurrentTargetFile = GetTargetFile(_EquipmentIterator.Current); CurrentName = GetName(_EquipmentIterator.Current); } return(true); } return(false); }