summaryrefslogtreecommitdiff
path: root/GameCode/CharacterCreator.cs
blob: 55d31ed68cc407bb9ccbee7619078d1385d61e65 (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 UnityEngine;

public class CharacterCreator : MonoBehaviour
{
	public PlayerFace currentPlayerFace;

	public GameObject objectToEnable;

	public int playerID;

	public int portraitID;

	public bool ready;

	public PlayerActions playerActions;

	public GeneralInput.InputType inputType;

	public MenuControllerHandler.MenuControl currentControl = MenuControllerHandler.MenuControl.Unassigned;

	public MenuControllerHandler.MenuControl lastControl = MenuControllerHandler.MenuControl.Unassigned;

	public Action<MenuControllerHandler.MenuControl> SwitchAction;

	public CharacterCreatorNavigation nav;

	private void Start()
	{
		nav = GetComponentInChildren<CharacterCreatorNavigation>();
	}

	private void Update()
	{
		if (currentControl != lastControl)
		{
			SwitchAction?.Invoke(currentControl);
		}
		lastControl = currentControl;
	}

	public void Close()
	{
		CharacterCreatorHandler.instance.ReleasePortrait(portraitID);
		if (playerActions == null)
		{
			base.gameObject.SetActive(value: false);
			MainMenuHandler.instance.Open();
		}
		else
		{
			objectToEnable.SetActive(value: true);
			base.gameObject.SetActive(value: false);
		}
	}

	public void Finish()
	{
		CharacterCreatorHandler.instance.ReleasePortrait(portraitID);
		CharacterCreatorHandler.instance.SetFacePreset(portraitID, currentPlayerFace);
		CharacterCreatorHandler.instance.SelectFace(0, currentPlayerFace, portraitID);
		if (playerActions == null)
		{
			base.gameObject.SetActive(value: false);
			MainMenuHandler.instance.Open();
		}
		else
		{
			objectToEnable.SetActive(value: true);
			base.gameObject.SetActive(value: false);
		}
	}

	internal void SetOffset(Vector2 offset, CharacterItemType itemType, int slotID)
	{
		if (itemType == CharacterItemType.Eyes)
		{
			currentPlayerFace.eyeOffset = offset;
		}
		if (itemType == CharacterItemType.Mouth)
		{
			currentPlayerFace.mouthOffset = offset;
		}
		if (itemType == CharacterItemType.Detail)
		{
			if (slotID == 0)
			{
				currentPlayerFace.detailOffset = offset;
			}
			if (slotID == 1)
			{
				currentPlayerFace.detail2Offset = offset;
			}
		}
	}

	internal void SpawnFace(PlayerFace currentFace)
	{
		GetComponentInChildren<CharacterCreatorItemEquipper>().SpawnPlayerFace(currentFace);
	}
}