Skip to content

Instantly share code, notes, and snippets.

@AndrewWeston9
Created October 6, 2017 06:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AndrewWeston9/6b2557c0abee587a47e4ac5165b2a121 to your computer and use it in GitHub Desktop.
Save AndrewWeston9/6b2557c0abee587a47e4ac5165b2a121 to your computer and use it in GitHub Desktop.
PlayerState.cs Snippet: Resource system that tracks the amount of resource for the player and controls the gain and reduction in resource.
private bool inTrigger;
private string ResourceName;
private Vector3 ResourcePosition;
PlayerMove pmove;
//GameObject playerObject;
// Use this for initialization
void Start () {
resourceLevels.Add (0.1f);
resourceLevels.Add (0.1f);
resourceLevels.Add (0.1f);
OnChangeResourceLevels (resourceLevels);
inTrigger = false;
ResourceName = "";
ResourcePosition = new Vector3 ();
pmove = gameObject.GetComponent<PlayerMove>();
}
public void changeResource (int resourceType, float deltaResource)
{
//if (!isServer)
//{
// return;
// }
resourceLevels [resourceType] += deltaResource;
pmove.resourceLevelsPMove [resourceType] += deltaResource;
if (resourceLevels[resourceType] > 1.0f)
{
resourceLevels[resourceType] = 1.0f;
pmove.resourceLevelsPMove [resourceType] = 1.0f;
}
resourceChanged = !resourceChanged;
Debug.Log ("Changed " + this);
}
public void takeResource()
{
if (inTrigger == true && ResourceName == "WoodResourceBrick(Clone)")
{
QuestManager.qManager.AddQItem("Harvest a block", 1);
//Debug.LogError ("In resource trigger range!!!!!!!!!!!!!!!!!!!!!!");
changeResource (0, 0.05f);
OnChangeResources (resourceChanged);
//pmove = gameObject.GetComponent<PlayerMove> ();
inTrigger = false;
ResourceTakeMessage m = new ResourceTakeMessage ();
m.position = ResourcePosition;
m.amount = -1;
NetworkManager.singleton.client.Send (LevelMsgType.ResourceUpdate, m);
}
if (inTrigger == true && ResourceName == "DirtResourceBrick(Clone)")
{
QuestManager.qManager.AddQItem("Harvest a block", 1);
//Debug.LogError ("In resource trigger range!!!!!!!!!!!!!!!!!!!!!!");
changeResource (1, 0.05f);
OnChangeResources (resourceChanged);
//pmove = gameObject.GetComponent<PlayerMove> ();
inTrigger = false;
ResourceTakeMessage m = new ResourceTakeMessage ();
m.position = ResourcePosition;
m.amount = -1;
NetworkManager.singleton.client.Send (LevelMsgType.ResourceUpdate, m);
}
if (inTrigger == true && ResourceName == "CrystalResourceBrick(Clone)")
{
QuestManager.qManager.AddQItem("Harvest a block", 1);
//Debug.LogError ("In resource trigger range!!!!!!!!!!!!!!!!!!!!!!");
changeResource (2, 0.05f);
OnChangeResources (resourceChanged);
//pmove = gameObject.GetComponent<PlayerMove> ();
inTrigger = false;
ResourceTakeMessage m = new ResourceTakeMessage ();
m.position = ResourcePosition;
m.amount = -1;
NetworkManager.singleton.client.Send (LevelMsgType.ResourceUpdate, m);
}
}
public void expendResorce(int type, float amount)
{
if (type == 2) {
changeResource (0, amount);
OnChangeResources (resourceChanged);
}
if (type == 3) {
changeResource (1, amount);
OnChangeResources (resourceChanged);
}
if (type == 4) {
changeResource (2, amount);
OnChangeResources (resourceChanged);
}
}
public float getResource(int type)
{
if (type == 2) {
return resourceLevels [0];
}
if (type == 3) {
return resourceLevels [1];
}
if (type == 4) {
return resourceLevels [2];
}
return 0.0f;
}
void OnTriggerEnter(Collider other)
{
if(other.gameObject.tag == "Resource")
{
inTrigger = true;
ResourceName = other.name;
//ResourcePosition = other.gameObject.transform.position;
ResourcePosition = other.transform.position;
//playerObject = other.transform.parent.gameObject;
}
}
void OnTriggerStay(Collider other)
{
if(other.gameObject.tag == "Resource")
{
inTrigger = true;
ResourceName = other.name;
//ResourcePosition = other.gameObject.transform.position;
ResourcePosition = other.transform.position;
//playerObject = other.transform.parent.gameObject;
}
}
void OnTriggerExit(Collider other)
{
if (other.tag == "Resource")
{
inTrigger = false;
ResourceName = "";
ResourcePosition = new Vector3();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment