// Extra step for when this parent texture's size doesn't match with hardcoded sizes. private static void ScaleSubtextureCoords(MTexture parent, ref int x, ref int y, ref int width, ref int height) { VirtualTexture parentTexture = ((patch_MTexture)parent)._Texture; // Try to find the most up-to-date MTexture parent belonging to this texture. // Use it for subtexturing instead. MTexture atlased; if (AtlasExt.VTextureToMTextureMap != null && AtlasExt.VTextureToMTextureMap.TryGetValue(parentTexture.Name, out atlased)) { parent = atlased; } MTextureOverride layer = ((patch_MTexture)parent).OverrideMeta; if (layer == null) { return; } // Works just fine... except for the _orignal_ snow flakes in GameLoader. float xf = parentTexture.Width / (float)parent.Width; float yf = parentTexture.Height / (float)parent.Height; x = (int)Math.Round(x * xf); y = (int)Math.Round(y * yf); width = (int)Math.Round(width * xf); height = (int)Math.Round(height * yf); }
public MTextureOverride AddOverride(MTextureOverride layer) { _CachedOverrideMeta = null; _CachedOverrideTexture = null; if (layer == null) { return(null); } if (_Overrides == null) { _Overrides = new MTextureOverride[16]; } if (_OverrideCount + 1 >= _Overrides.Length) { MTextureOverride[] grown = new MTextureOverride[_Overrides.Length * 2]; Array.Copy(_Overrides, grown, _Overrides.Length); _Overrides = grown; } _Overrides[_OverrideCount] = layer; ++_OverrideCount; return(layer); }
public MTextureOverride AddOverride(MTextureOverride layer) { if (_Overrides == null) { _Overrides = new List <MTextureOverride>(); } _Overrides.Add(layer); _CachedOverrideMeta = null; _CachedOverrideTexture = null; return(layer); }
/// <summary> /// Add a new override layer. /// </summary> public static MTextureOverride AddOverride(this MTexture self, MTextureOverride layer) => ((patch_MTexture)self).AddOverride(layer);