private void Start() { //smoke = transform.Find("Smoke").GetComponent<ParticleEmitter>(); fireMat = GetComponent <MeshRenderer>().material; fireGlow = GetComponent <Light>(); AllFires.Add(this); StartCoroutine(RenderFires()); Vector3 localScale = transform.localScale; localScale.y = -localScale.y; transform.localScale = localScale; }
public void FireIgnite() { /*if (Network.isServer) * { * isOnFire = true; * StartCoroutine(FireSpread()); * StartCoroutine(FireDetect()); * StartCoroutine(LoopCheckNearBigFire()); * fireWatch.networkView.RPC("CreateFireAnimate", 2, new object[] * { * transform.position + fireOffsetLocaiton, * transform.rotation, * false, * networkView.viewID, * Network.AllocateViewID() * }); * currentFireCheckRate = minFireCheckRate; * AllFires.Add(this); * fireWatch.networkView.RPC("SyncAllFlamable", 1, new object[] * { * networkView.viewID, * isOnFire, * wasOnFire, * isFlamableAgain, * reflamable, * currentBurnHealth, * currentTemp, * nearBigFire, * currentFireCheckRate * }); * }*/ isOnFire = true; StartCoroutine(FireSpread()); StartCoroutine(FireDetect()); StartCoroutine(LoopCheckNearBigFire()); fireWatch.CreateFireAnimate(transform.position + fireOffsetLocaiton, transform.rotation, false, gameObject); currentFireCheckRate = minFireCheckRate; AllFires.Add(this); fireWatch.SyncAllFlamable(gameObject, isOnFire, wasOnFire, isFlamableAgain, reflamable, currentBurnHealth, currentTemp, nearBigFire, currentFireCheckRate); }
public void RemoveFromAllFires() { AllFires.Remove(this); }
public void FireBurnOut(bool resetBurnTemp = false) { /*if (Network.isServer) * { * isOnFire = false; * wasOnFire = true; * isFlamableAgain = false; * StopCoroutine(FireSpread()); * StopCoroutine(FireDetect()); * StopCoroutine(LoopCheckNearBigFire()); * if (fireAnimate) * { * fireAnimate.PutOut(true); * } * Destroy(FireGameObject); * FireGameObject = null; * currentFireCheckRate = maxFireCheckRate; * if (resetBurnTemp) * { * currentBurnHealth = burnHealth; * currentTemp = startTemp; * if (food != null) * { * food.foodTemp = startTemp; * food.CallSyncFood(); * } * } * AllFires.Remove(this); * fireWatch.networkView.RPC("SyncAllFlamable", 1, new object[] * { * networkView.viewID, * isOnFire, * wasOnFire, * isFlamableAgain, * reflamable, * currentBurnHealth, * currentTemp, * nearBigFire, * currentFireCheckRate * }); * }*/ isOnFire = false; wasOnFire = true; isFlamableAgain = false; StopCoroutine(FireSpread()); StopCoroutine(FireDetect()); StopCoroutine(LoopCheckNearBigFire()); if (fireAnimate) { fireAnimate.PutOut(true); } Destroy(FireGameObject); FireGameObject = null; currentFireCheckRate = maxFireCheckRate; if (resetBurnTemp) { currentBurnHealth = burnHealth; currentTemp = startTemp; if (food != null) { food.foodTemp = startTemp; } } AllFires.Remove(this); /*fireWatch.networkView.RPC("SyncAllFlamable", 1, new object[] * { * isOnFire, * wasOnFire, * isFlamableAgain, * reflamable, * currentBurnHealth, * currentTemp, * nearBigFire, * currentFireCheckRate * });*/ }