public ArtCardBarWrapper(ArtCard card) : this() { _artCard = card; CardId = card.Id; TextureName = card.Texture.Name; TexturePath = card.Texture.Path; var mat = card.GetMaterial(MaterialType.CardBar); if (mat != null) { foreach (var t in mat.Transforms) { if (t.Type == TransformType.Standard) { _tStandard = t; StandardScale = t.Scale; StandardOffset = t.Offset; } else if (t.Type == TransformType.Shader) { _tShader = t; ShaderScale = t.Scale; ShaderOffset = t.Offset; } } } }
private CardArtDefs CreateSampleDefs() { var root = new CardArtDefs(); root.Patch = "1.0.0.0"; root.Cards = new List <ArtCard>(); var card1 = new ArtCard(); card1.Id = "AC_123"; card1.Texture = new Texture() { Name = "WOW_1223", Path = "/tex/fp1_01/de2", Bundle = "shared0" }; card1.Materials = new List <Material>(); var mat1 = new Material(); mat1.Type = MaterialType.Portrait; mat1.Transforms = new List <Transform>() { new Transform() { Type = TransformType.Standard, Offset = new CoordinateTransform(0.0f), Scale = new CoordinateTransform(1.0f) }, new Transform() { Type = TransformType.Shader, Offset = new CoordinateTransform(0.0f), Scale = new CoordinateTransform(1.0f) } }; card1.Materials.Add(mat1); var mat2 = new Material(); mat2.Type = MaterialType.CardBar; mat2.Transforms = new List <Transform>() { new Transform() { Type = TransformType.Standard, Offset = new CoordinateTransform(0.0f), Scale = new CoordinateTransform(1.0f) }, new Transform() { Type = TransformType.Shader, Offset = new CoordinateTransform(-0.3f, 1.2f), Scale = new CoordinateTransform(1.2f) } }; card1.Materials.Add(mat2); root.Cards.Add(card1); return(root); }
public ArtCardBarWrapper() { _artCard = new ArtCard(); var mat = Export.GetDefaultMaterial(); _tStandard = mat.GetTransform(TransformType.Standard); _tShader = mat.GetTransform(TransformType.Shader); CardId = "NA"; TextureName = "NA"; TexturePath = "NA"; StandardScale = _tStandard.Scale; StandardOffset = _tStandard.Offset; ShaderScale = _tShader.Scale; ShaderOffset = _tShader.Offset; }
private void ProcessObjects() { foreach (var entry in _gameObjects) { var go = entry.Value; if (string.IsNullOrWhiteSpace(go.Name)) { Logger.Log(LogLevel.WARN, "GameObject id={0} has no Name", entry.Key); } else { // go through all the GameObject file references foreach (var fp in go.Components) { // only interested in CardDef (MonoBehaviour) if ((UnityClass)fp.ClassID == UnityClass.MonoBehaviour) { var pathId = fp.PathID; // find the CarDef object from the file reference if (_cardDefObjects.ContainsKey(pathId)) { CardDef def = _cardDefObjects[pathId]; // if no texture path defined, skip it if (!string.IsNullOrWhiteSpace(def.PortratitTexturePath)) { GameMaterial portMat = FindMaterial(def.EnchantmentPortrait); GameMaterial barMat = FindMaterial(def.DeckCardBarPortrait); ArtCard card = new ArtCard(go.Name, def, portMat, barMat); Cards.Add(card); } else { Logger.Log(LogLevel.WARN, "Portriat texture not found for: {0}", go.Name); } } else { Logger.Log(LogLevel.WARN, "CardDef not found for {0}", pathId); } } } } } }
private void SaveImages(Texture2D tex, ArtCard match) { var cardId = match.Id; var card = CardDb.All[cardId]; var cardName = card.Name; var cardSet = card.Set; var filename = cardId; var subDir = ""; if (tex.Image.Length <= 0) { Logger.Log(LogLevel.WARN, $"Texture {tex.Name} has an empty image"); return; } if (_opts.AddCardName) { filename = StringUtils.SafeString(cardName) + "-" + filename; } if (_opts.GroupBySet) { if (CardEnumConverter.FriendlySetName.ContainsKey(cardSet)) { subDir = CardEnumConverter.FriendlySetName[cardSet]; } else { subDir = "Other"; } if (!_opts.BarArtOnly) { Directory.CreateDirectory(Path.Combine(_dirFull, subDir)); } } if (_opts.ImageType?.ToLower() == "dds" && !_opts.BarArtOnly) { tex.Save(Path.Combine(_dirFull, subDir), filename); return; } Bitmap original = null; if (tex.IsDDS) { original = DDS.LoadImage(tex.Image, _opts.PreserveAlphaChannel); } else { // TODO: tga alpha channel? // Assumimg it is TGA var tga = new TargaImage(new MemoryStream(tex.Image)); original = tga.Image; // Flip original on y, so like dds original.RotateFlip(RotateFlipType.RotateNoneFlipY); } // save full size image to disk Bitmap full = new Bitmap(original); if (_opts.Height > 0) { full = new Bitmap(original, _opts.Height, _opts.Height); } // flip "right" way up if (_opts.FlipY) { full.RotateFlip(RotateFlipType.RotateNoneFlipY); } full.Save(Path.Combine(_dirFull, subDir, filename + "." + _opts.ImageType.ToLower())); }