summaryrefslogtreecommitdiff
path: root/Client/Assembly-CSharp/SkinLayer.cs
blob: 80f0cf6ac321cc031f90e374072bafbaaa2f8699 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
using System;
using PowerTools;
using UnityEngine;

public class SkinLayer : MonoBehaviour
{
	public bool Flipped
	{
		set
		{
			this.layer.flipX = value;
		}
	}

	public bool Visible
	{
		set
		{
			this.layer.enabled = value;
		}
	}

	public SpriteRenderer layer;

	public SpriteAnim animator;

	public SkinData skin;

	public void SetRun()
	{
		if (!this.skin || !this.animator)
		{
			this.SetGhost();
			return;
		}
		if (!this.animator.IsPlaying(this.skin.RunAnim))
		{
			this.animator.Play(this.skin.RunAnim, 1f);
		}
	}

	public void SetSpawn(float time = 0f)
	{
		if (!this.skin || !this.animator)
		{
			this.SetGhost();
			return;
		}
		this.animator.Play(this.skin.SpawnAnim, 1f);
		this.animator.Time = time;
	}

	public void SetExitVent()
	{
		if (!this.skin || !this.animator)
		{
			this.SetGhost();
			return;
		}
		this.animator.Play(this.skin.ExitVentAnim, 1f);
	}

	public void SetEnterVent()
	{
		if (!this.skin || !this.animator)
		{
			this.SetGhost();
			return;
		}
		this.animator.Play(this.skin.EnterVentAnim, 1f);
	}

	public void SetIdle()
	{
		if (!this.skin || !this.animator)
		{
			this.SetGhost();
			return;
		}
		if (!this.animator.IsPlaying(this.skin.IdleAnim))
		{
			this.animator.Play(this.skin.IdleAnim, 1f);
		}
	}

	public void SetGhost()
	{
		if (!this.animator)
		{
			return;
		}
		this.animator.Stop();
		this.layer.sprite = null;
	}

	internal void SetSkin(uint skinId)
	{
		this.skin = DestroyableSingleton<HatManager>.Instance.GetSkinById(skinId);
		this.SetIdle();
	}
}