2using System.Collections.Generic;
8 public static Dictionary<string, RenderData>
DictRenderData =
new Dictionary<string, RenderData>();
127 return tag.Contains(_tag.ToString());
150 return tag.Contains(_tag);
155 base.OnImportData(data);
178 string[] array =
idRenderData.Replace(
"@",
"").Split(
'#');
179 string text = array[0];
180 if (array.Length > 1)
185 if (this.renderData ==
null)
190 renderData.offset.x += renderData.pass.pmesh.size.x * 0.5f;
191 renderData.offset.y += renderData.pass.pmesh.size.y * 0.5f;
197 renderData.offset.x += num;
198 renderData.offset.y += num2;
199 renderData.offsetBack.x += num;
200 renderData.offsetBack.y += num2;
201 renderData.heldPos.x += num * 0.7f;
202 renderData.heldPos.y += num2 * 0.7f;
204 renderData.pass =
null;
213 if (!Application.isEditor &&
pref ==
null)
230 this.renderData.
Init();
234 if (!(text2 ==
"alt"))
236 if (text2 ==
"random")
246 if (!alias.TryGetValue(
defMat.IsEmpty(
"granite"), out var defaultMaterial))
248 defaultMaterial = alias[
"granite"];
249 Debug.LogError(
$"#source failed to set def mat '{defMat}' - {ModUtil.FindSourceRowPackage(this)}");
259 for (
int i = 0; i <
tiles.Length; i++)
271 public Sprite
GetSprite(
int dir = 0,
int skin = 0,
bool snow =
false)
282 int[] array =
null ??
_tiles;
285 sprites =
new Sprite[(
skins ==
null) ? 1 : (
skins.Length + 1), (array.Length == 0) ? 1 : array.Length];
292 if (skin != 0 && skin >=
sprites.GetLength(0))
300 if (dir >= array.Length)
309 Texture2D texture2D = pass.
mat.GetTexture(
"_MainTex") as Texture2D;
312 num = ((skin != 0) ? Mathf.Abs(array[dir] + (
skins[skin - 1] / 100 * (
int)renderData.pass.pmesh.tiling.x +
skins[skin - 1] % 100) * ((array[dir] > 0) ? 1 : (-1))) : Mathf.Abs(array[dir]));
313 int num2 = (int)((
float)texture2D.width / pmesh.
tiling.x);
314 int num3 = (int)((
float)texture2D.height / pmesh.
tiling.y);
315 int num4 = (int)((
float)num % pmesh.
tiling.x);
316 int num5 = (int)((
float)num / pmesh.
tiling.x);
317 sprites[skin, dir] = Sprite.Create(texture2D,
new Rect(num4 * num2, texture2D.height - (num5 + 1) * num3, num2, num3 * ((!
renderData.
multiSize) ? 1 : 2)), Vector2.zero, 100f, 0u, SpriteMeshType.FullRect);
335 public void SetSpriteRenderer(SpriteRenderer sr, Sprite sprite =
null,
int matCol = 0,
bool setTransform =
true,
int dir = 0,
int idSkin = 0)
337 sr.sprite = sprite ??
GetSprite(dir, idSkin);
342 int num = ((matCol == 0) ? 104025 : matCol);
343 float num2 = (float)(num / 262144) * 0.01f;
350 Color color =
new Color(num3 * (
float)(num % 262144 / 4096) + num4, num3 * (
float)(num % 4096 / 64) + num4, num3 * (
float)(num % 64) + num4, 1f);
354 float num5 = sr.bounds.max.x - sr.bounds.min.x;
357 sr.transform.localPosition =
new Vector3(-0.5f * num5, 0f, 0f);
366 public void SetImage(Image image, Sprite sprite =
null,
int matCol = 0,
bool setNativeSize =
true,
int dir = 0,
int idSkin = 0,
Card card =
null)
368 bool num =
card !=
null && card.isChara && card.Chara.spriteReplacer !=
null && !
card.HasHost;
376 image.sprite = sprite ??
GetSprite(dir, idSkin);
377 int num = ((matCol == 0) ? 104025 : matCol);
379 Color color =
new Color(num2 * (
float)(num % 262144 / 4096), num2 * (
float)(num % 4096 / 64), num2 * (
float)(num % 64), (
float)(num / 262144) * 0.01f);
382 RectTransform rectTransform = image.Rect();
383 rectTransform.pivot = _renderData.imagePivot -
new Vector2(0.01f * (
float)_pref.
pivotX, 0.01f * (
float)_pref.
pivotY);
384 float x = Mathf.Abs(image.transform.localScale.x) * (float)((
_tiles ==
null ||
_tiles.Length == 0 ||
_tiles[dir %
_tiles.Length] >= 0) ? 1 : (-1));
385 float y = image.transform.localScale.y;
386 image.transform.localScale =
new Vector3(x, y, image.transform.localScale.z);
390 image.SetNativeSize();
393 rectTransform.sizeDelta =
new Vector2(rectTransform.sizeDelta.x * (_renderData.
imageScale.x + (
float)_pref.
scaleIcon * 0.01f), rectTransform.sizeDelta.y * (_renderData.
imageScale.y + (
float)_pref.
scaleIcon * 0.01f));
411 shared.tile =
GetTile(mat, dir);
420 shared.color = 11010048f;
429 shared.color = 10485760f;
431 vector = point.Position(bridgeHeight);
static int GetColorInt(ref Color matColor, int p)
int ConvertTile(int tile)
static RenderParam shared
virtual SourcePref GetPref()
void SetRenderParam(RenderParam p, SourceMaterial.Row mat, int dir)
int GetColorInt(SourceMaterial.Row mat)
virtual string pathSprite
SourceCategory.Row Category
virtual string pathRenderData
virtual RenderData defaultRenderData
virtual string prefabName
bool ContainsTag(string _tag)
void SetImage(Image image, Sprite sprite, int matCol, bool setNativeSize, int dir, int idSkin, RenderData _renderData, SourcePref _pref)
int ConvertTile(int tile)
virtual string GetSearchName(bool jp)
virtual string idRenderData
void SetImage(Image image, Sprite sprite=null, int matCol=0, bool setNativeSize=true, int dir=0, int idSkin=0, Card card=null)
Sprite GetSprite(int dir=0, int skin=0, bool snow=false)
void SetSpriteRenderer(SpriteRenderer sr, Sprite sprite=null, int matCol=0, bool setTransform=true, int dir=0, int idSkin=0)
static Dictionary< string, RenderData > DictRenderData
virtual int GetTile(SourceMaterial.Row mat, int dir=0)
virtual RenderParam GetRenderParam(SourceMaterial.Row mat, int dir, Point point=null, int bridgeHeight=-1)
SourceCategory.Row _category
SourceMaterial.Row DefaultMaterial
override void OnImportData(SourceData data)
Dictionary< string, CardRow > map
string GetText(string id="name", bool returnNull=false)
SourceCategory categories
bool HasSprite(string id, RenderData renderData=null)
Sprite GetSprite(string suffix="")
static Sprite Get(string id)