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)
277 int[] array =
null ??
_tiles;
280 sprites =
new Sprite[(
skins ==
null) ? 1 : (
skins.Length + 1), (array.Length == 0) ? 1 : array.Length];
287 if (skin != 0 && skin >=
sprites.GetLength(0))
295 if (dir >= array.Length)
304 Texture2D texture2D = pass.
mat.GetTexture(
"_MainTex") as Texture2D;
307 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]));
308 int num2 = (int)((
float)texture2D.width / pmesh.
tiling.x);
309 int num3 = (int)((
float)texture2D.height / pmesh.
tiling.y);
310 int num4 = (int)((
float)num % pmesh.
tiling.x);
311 int num5 = (int)((
float)num / pmesh.
tiling.x);
312 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);
330 public void SetSpriteRenderer(SpriteRenderer sr, Sprite sprite =
null,
int matCol = 0,
bool setTransform =
true,
int dir = 0,
int idSkin = 0)
332 sr.sprite = sprite ??
GetSprite(dir, idSkin);
337 int num = ((matCol == 0) ? 104025 : matCol);
338 float num2 = (float)(num / 262144) * 0.01f;
345 Color color =
new Color(num3 * (
float)(num % 262144 / 4096) + num4, num3 * (
float)(num % 4096 / 64) + num4, num3 * (
float)(num % 64) + num4, 1f);
349 float num5 = sr.bounds.max.x - sr.bounds.min.x;
352 sr.transform.localPosition =
new Vector3(-0.5f * num5, 0f, 0f);
361 public void SetImage(Image image, Sprite sprite =
null,
int matCol = 0,
bool setNativeSize =
true,
int dir = 0,
int idSkin = 0,
Card card =
null)
363 bool num =
card !=
null && card.isChara && card.Chara.spriteReplacer !=
null && !
card.HasHost;
371 image.sprite = sprite ??
GetSprite(dir, idSkin);
372 int num = ((matCol == 0) ? 104025 : matCol);
374 Color color =
new Color(num2 * (
float)(num % 262144 / 4096), num2 * (
float)(num % 4096 / 64), num2 * (
float)(num % 64), (
float)(num / 262144) * 0.01f);
377 RectTransform rectTransform = image.Rect();
378 rectTransform.pivot = _renderData.imagePivot -
new Vector2(0.01f * (
float)_pref.
pivotX, 0.01f * (
float)_pref.
pivotY);
379 float x = Mathf.Abs(image.transform.localScale.x) * (float)((
_tiles ==
null ||
_tiles.Length == 0 ||
_tiles[dir %
_tiles.Length] >= 0) ? 1 : (-1));
380 float y = image.transform.localScale.y;
381 image.transform.localScale =
new Vector3(x, y, image.transform.localScale.z);
385 image.SetNativeSize();
388 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));
406 shared.tile =
GetTile(mat, dir);
415 shared.color = 11010048f;
424 shared.color = 10485760f;
426 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
Sprite GetSprite(bool snow=false)
bool HasSprite(string id, RenderData renderData=null)
static Sprite Get(string id)