2using System.Collections.Generic;
8 public static Dictionary<string, RenderData>
DictRenderData =
new Dictionary<string, RenderData>();
128 Debug.LogError(
"#source unknown category '" +
category +
"' for " + GetType().DeclaringType?.Name +
" " +
RecipeID +
", using 'obj'");
141 return tag.Contains(_tag.ToString());
164 return tag.Contains(_tag);
169 base.OnImportData(data);
192 string[] array =
idRenderData.Replace(
"@",
"").Split(
'#');
193 string text = array[0];
194 if (array.Length > 1)
199 if (this.renderData ==
null)
204 renderData.offset.x += renderData.pass.pmesh.size.x * 0.5f;
205 renderData.offset.y += renderData.pass.pmesh.size.y * 0.5f;
211 renderData.offset.x += num;
212 renderData.offset.y += num2;
213 renderData.offsetBack.x += num;
214 renderData.offsetBack.y += num2;
215 renderData.heldPos.x += num * 0.7f;
216 renderData.heldPos.y += num2 * 0.7f;
218 renderData.pass =
null;
227 if (!Application.isEditor && !
aliasPref.IsEmpty())
237 this.renderData.
Init();
253 if (!alias.TryGetValue(
defMat.IsEmpty(
"granite"), out var defaultMaterial))
255 defaultMaterial = alias[
"granite"];
256 Debug.LogError(
$"#source failed to set def mat '{defMat}' - {ModUtil.FindSourceRowPackage(this)}");
274 for (
int i = 0; i <
tiles.Length; i++)
286 public Sprite
GetSprite(
int dir = 0,
int skin = 0,
bool snow =
false)
297 int[] array =
null ??
_tiles;
300 sprites =
new Sprite[(
skins ==
null) ? 1 : (
skins.Length + 1), (array.Length == 0) ? 1 : array.Length];
307 if (skin != 0 && skin >=
sprites.GetLength(0))
315 if (dir >= array.Length)
324 Texture2D texture2D = pass.
mat.GetTexture(
"_MainTex") as Texture2D;
327 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]));
328 int num2 = (int)((
float)texture2D.width / pmesh.
tiling.x);
329 int num3 = (int)((
float)texture2D.height / pmesh.
tiling.y);
330 int num4 = (int)((
float)num % pmesh.
tiling.x);
331 int num5 = (int)((
float)num / pmesh.
tiling.x);
332 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);
350 public void SetSpriteRenderer(SpriteRenderer sr, Sprite sprite =
null,
int matCol = 0,
bool setTransform =
true,
int dir = 0,
int idSkin = 0)
352 sr.sprite = sprite ??
GetSprite(dir, idSkin);
357 int num = ((matCol == 0) ? 104025 : matCol);
358 float num2 = (float)(num / 262144) * 0.01f;
365 Color color =
new Color(num3 * (
float)(num % 262144 / 4096) + num4, num3 * (
float)(num % 4096 / 64) + num4, num3 * (
float)(num % 64) + num4, 1f);
369 float num5 = sr.bounds.max.x - sr.bounds.min.x;
372 sr.transform.localPosition =
new Vector3(-0.5f * num5, 0f, 0f);
381 public void SetImage(Image image, Sprite sprite =
null,
int matCol = 0,
bool setNativeSize =
true,
int dir = 0,
int idSkin = 0,
Card card =
null)
383 bool num =
card !=
null && card.isChara && card.Chara.spriteReplacer !=
null && !
card.HasHost;
391 image.sprite = sprite ??
GetSprite(dir, idSkin);
392 int num = ((matCol == 0) ? 104025 : matCol);
394 Color color =
new Color(num2 * (
float)(num % 262144 / 4096), num2 * (
float)(num % 4096 / 64), num2 * (
float)(num % 64), (
float)(num / 262144) * 0.01f);
397 RectTransform rectTransform = image.Rect();
398 rectTransform.pivot = _renderData.imagePivot -
new Vector2(0.01f * (
float)_pref.
pivotX, 0.01f * (
float)_pref.
pivotY);
399 float x = Mathf.Abs(image.transform.localScale.x) * (float)((
_tiles ==
null ||
_tiles.Length == 0 ||
_tiles[dir %
_tiles.Length] >= 0) ? 1 : (-1));
400 float y = image.transform.localScale.y;
401 image.transform.localScale =
new Vector3(x, y, image.transform.localScale.z);
405 image.SetNativeSize();
408 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));
426 shared.tile =
GetTile(mat, dir);
435 shared.color = 11010048f;
444 shared.color = 10485760f;
446 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)