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 && !
aliasPref.IsEmpty())
223 this.renderData.
Init();
227 if (!(text2 ==
"alt"))
229 if (text2 ==
"random")
239 if (!alias.TryGetValue(
defMat.IsEmpty(
"granite"), out var defaultMaterial))
241 defaultMaterial = alias[
"granite"];
242 Debug.LogError(
$"#source failed to set def mat '{defMat}' - {ModUtil.FindSourceRowPackage(this)}");
252 for (
int i = 0; i <
tiles.Length; i++)
264 public Sprite
GetSprite(
int dir = 0,
int skin = 0,
bool snow =
false)
275 int[] array =
null ??
_tiles;
278 sprites =
new Sprite[(
skins ==
null) ? 1 : (
skins.Length + 1), (array.Length == 0) ? 1 : array.Length];
285 if (skin != 0 && skin >=
sprites.GetLength(0))
293 if (dir >= array.Length)
302 Texture2D texture2D = pass.
mat.GetTexture(
"_MainTex") as Texture2D;
305 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]));
306 int num2 = (int)((
float)texture2D.width / pmesh.
tiling.x);
307 int num3 = (int)((
float)texture2D.height / pmesh.
tiling.y);
308 int num4 = (int)((
float)num % pmesh.
tiling.x);
309 int num5 = (int)((
float)num / pmesh.
tiling.x);
310 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);
328 public void SetSpriteRenderer(SpriteRenderer sr, Sprite sprite =
null,
int matCol = 0,
bool setTransform =
true,
int dir = 0,
int idSkin = 0)
330 sr.sprite = sprite ??
GetSprite(dir, idSkin);
335 int num = ((matCol == 0) ? 104025 : matCol);
336 float num2 = (float)(num / 262144) * 0.01f;
343 Color color =
new Color(num3 * (
float)(num % 262144 / 4096) + num4, num3 * (
float)(num % 4096 / 64) + num4, num3 * (
float)(num % 64) + num4, 1f);
347 float num5 = sr.bounds.max.x - sr.bounds.min.x;
350 sr.transform.localPosition =
new Vector3(-0.5f * num5, 0f, 0f);
359 public void SetImage(Image image, Sprite sprite =
null,
int matCol = 0,
bool setNativeSize =
true,
int dir = 0,
int idSkin = 0,
Card card =
null)
361 bool num =
card !=
null && card.isChara && card.Chara.spriteReplacer !=
null && !
card.HasHost;
369 image.sprite = sprite ??
GetSprite(dir, idSkin);
370 int num = ((matCol == 0) ? 104025 : matCol);
372 Color color =
new Color(num2 * (
float)(num % 262144 / 4096), num2 * (
float)(num % 4096 / 64), num2 * (
float)(num % 64), (
float)(num / 262144) * 0.01f);
375 RectTransform rectTransform = image.Rect();
376 rectTransform.pivot = _renderData.imagePivot -
new Vector2(0.01f * (
float)_pref.
pivotX, 0.01f * (
float)_pref.
pivotY);
377 float x = Mathf.Abs(image.transform.localScale.x) * (float)((
_tiles ==
null ||
_tiles.Length == 0 ||
_tiles[dir %
_tiles.Length] >= 0) ? 1 : (-1));
378 float y = image.transform.localScale.y;
379 image.transform.localScale =
new Vector3(x, y, image.transform.localScale.z);
383 image.SetNativeSize();
386 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));
404 shared.tile =
GetTile(mat, dir);
413 shared.color = 11010048f;
422 shared.color = 10485760f;
424 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)