Esempio n. 1
0
        private void Update()
        {
            int      detectedSamples = 0;
            var      currentPosition = new Vector2(transform.position.x, transform.position.y);
            CompDict composition     = new CompDict();
            bool     catlystPresent  = false;

            foreach (var item in Physics2D.OverlapBoxAll(currentPosition + reactionOrigin, reactionSize, 0))
            {
                var catalyst = item.GetComponent <Catalyst>();
                if (catalyst != null)
                {
                    catlystPresent = true;
                }

                var liquid = item.GetComponent <Liquid>();
                if (liquid == null)
                {
                    continue;
                }
                detectedSamples++;
                foreach (var kvp in liquid.Composition)
                {
                    if (composition.ContainsKey(kvp.Key))
                    {
                        composition[kvp.Key] = composition[kvp.Key] + kvp.Value;
                    }
                    else
                    {
                        composition.Add(kvp.Key, kvp.Value);
                    }
                }
            }

            if (detectedSamples > 0)
            {
                Liquid.Normalize(composition);
                foreach (var item in Physics2D.OverlapBoxAll(currentPosition + reactionOrigin, reactionSize, 0))
                {
                    var liquid = item.GetComponent <Liquid>();
                    if (liquid == null)
                    {
                        continue;
                    }
                    liquid.CatalystPresent = catlystPresent;
                    liquid.Composition     = CompDict.Clone(composition);
                }
            }
        }
        private void Update()
        {
            var currentPosition = new Vector2(transform.position.x, transform.position.y);

            if (Physics2D.OverlapBoxAll(currentPosition + probeOrigin, probeSize, 0).Length == 0)
            {
                outputText.text = "No Sample";
            }

            int      detectedSamples = 0;
            CompDict composition     = new CompDict();

            foreach (var item in Physics2D.OverlapBoxAll(currentPosition + probeOrigin, probeSize, 0))
            {
                var liquid = item.GetComponent <Liquid>();
                if (liquid == null)
                {
                    continue;
                }
                detectedSamples++;
                foreach (var kvp in liquid.Composition)
                {
                    if (composition.ContainsKey(kvp.Key))
                    {
                        composition[kvp.Key] = composition[kvp.Key] + kvp.Value;
                    }
                    else
                    {
                        composition.Add(kvp.Key, kvp.Value);
                    }
                }
            }

            if (detectedSamples == 0)
            {
                outputText.text = "No Sample";
            }
            else
            {
                //normalize results
                Liquid.Normalize(composition);

                outputText.text = Liquid.GetComposition(composition);
            }
        }