-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathAddPulleyScript.cs
69 lines (53 loc) · 1.91 KB
/
AddPulleyScript.cs
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
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class AddPulleyScript : MonoBehaviour {
bool fixedNext; //true if a fixed pulley is next to be added
private GameObject mass; //the mass in the scene
private PulleyMass pulley_mass; //the pulleymass component
private int num_moveable_pulleys;
private int num_fixed_pulleys;
//UI elements
public Text mechAdvantageText;
private void Start()
{
fixedNext = true; //we want to start with a fixed pulley
mass = GameObject.FindGameObjectWithTag("Mass");
pulley_mass = mass.GetComponent<PulleyMass>();
}
public void AddNextPulley()
{
if (fixedNext)
{
AddNewFixedPulley();
}
else
{
AddNewMoveablePulley();
}
//inverted fixed next
fixedNext = !fixedNext;
mechAdvantageText.text = PulleyController.GetMechanicalAdvantage().ToString("F0");
}
public void AddNewFixedPulley()
{
//fixed pulleys add a support rope to the mass
pulley_mass.AddSupportRope();
PulleyController.AddFixedPulleyToScene();
PulleyController.GetPulleysInScene(); //add all the pulleys back to the list of pulleys
PulleyController.CalculateMechanicalAdvantage();
num_fixed_pulleys++;
}
//when a new pulley is added
public void AddNewMoveablePulley()
{
pulley_mass.AddPulleyToMass(); //add a support pulley to the mass
//when a moveable pulley is added there is no longer a SupportRope
pulley_mass.RemoveSupportRope();
PulleyController.AddMoveablePulleyToScene();
PulleyController.GetPulleysInScene(); //add all the pulleys back to the list of pulleys
PulleyController.CalculateMechanicalAdvantage();
num_moveable_pulleys++;
}
}