Esempio n. 1
0
    //Event which react on colision between specific bin and garbage truck.
    void OnTriggerEnter2D(Collider2D coll)
    {
        _trashGenerator = new TrashGenerator();
        _garbageTruck   = new GarbageTruck();
        _decisionTree   = new DecisionTree();

        if (coll.name.StartsWith("SmietnikAluminium"))
        {
            _binOfAluminium = new BinOfAluminium();

            while (_binOfAluminium.AmountOfEmptySpaceOfBin())
            {
                _binOfAluminium.AddTrashToBin(_trashGenerator.GetResult());
            }

            for (int index = 0; index < _binOfAluminium.ContentOfBin.Length; index++)
            {
                if (_decisionTree.CheckWeight(_binOfAluminium.ContentOfBin[index]) == "NextTest")
                {
                    if (_decisionTree.CheckAbilityOfCrushing(_binOfAluminium.ContentOfBin[index]) == "NextTest")
                    {
                        if (_decisionTree.CheckAbsorptionOfHeat(_binOfAluminium.ContentOfBin[index]) == "Paper")
                        {
                            _garbageTruck.AddTrashToGarbageTruck("Paper", _binOfAluminium.ContentOfBin[index]);
                        }
                        else if (_decisionTree.CheckAbsorptionOfHeat(_binOfAluminium.ContentOfBin[index]) == "Glass")
                        {
                            _garbageTruck.AddTrashToGarbageTruck("Glass", _binOfAluminium.ContentOfBin[index]);
                        }
                        else
                        {
                            _garbageTruck.AddTrashToGarbageTruck("Aluminium", _binOfAluminium.ContentOfBin[index]);
                        }
                    }
                    else if (_decisionTree.CheckAbilityOfCrushing(_binOfAluminium.ContentOfBin[index]) == "Paper")
                    {
                        _garbageTruck.AddTrashToGarbageTruck("Paper", _binOfAluminium.ContentOfBin[index]);
                    }
                    else
                    {
                        _garbageTruck.AddTrashToGarbageTruck("Aluminium", _binOfAluminium.ContentOfBin[index]);
                    }
                }
                else if (_decisionTree.CheckWeight(_binOfAluminium.ContentOfBin[index]) == "Paper")
                {
                    _garbageTruck.AddTrashToGarbageTruck("Paper", _binOfAluminium.ContentOfBin[index]);
                }
                else
                {
                    _garbageTruck.AddTrashToGarbageTruck("Aluminium", _binOfAluminium.ContentOfBin[index]);
                }
            }

            DisplayConentOfGarbageTruck(_garbageTruck);
            DisplayContentBin(_binOfAluminium);
            Destroy(coll.gameObject);
        }

        if (coll.name.StartsWith("SmietnikPapier"))
        {
            _binOfPaper = new BinOfPaper();

            while (_binOfPaper.AmountOfEmptySpaceOfBin())
            {
                _binOfPaper.AddTrashToBin(_trashGenerator.GetResult());
            }
            for (int index = 0; index < _binOfPaper.ContentOfBin.Length; index++)
            {
                if (_decisionTree.CheckWeight(_binOfPaper.ContentOfBin[index]) == "NextTest")
                {
                    if (_decisionTree.CheckAbilityOfCrushing(_binOfPaper.ContentOfBin[index]) == "NextTest")
                    {
                        if (_decisionTree.CheckAbsorptionOfHeat(_binOfPaper.ContentOfBin[index]) == "Paper")
                        {
                            _garbageTruck.AddTrashToGarbageTruck("Paper", _binOfPaper.ContentOfBin[index]);
                        }
                        else if (_decisionTree.CheckAbsorptionOfHeat(_binOfPaper.ContentOfBin[index]) == "Glass")
                        {
                            _garbageTruck.AddTrashToGarbageTruck("Glass", _binOfPaper.ContentOfBin[index]);
                        }
                        else
                        {
                            _garbageTruck.AddTrashToGarbageTruck("Aluminium", _binOfPaper.ContentOfBin[index]);
                        }
                    }
                    else if (_decisionTree.CheckAbilityOfCrushing(_binOfPaper.ContentOfBin[index]) == "Paper")
                    {
                        _garbageTruck.AddTrashToGarbageTruck("Paper", _binOfPaper.ContentOfBin[index]);
                    }
                    else
                    {
                        _garbageTruck.AddTrashToGarbageTruck("Aluminium", _binOfPaper.ContentOfBin[index]);
                    }
                }
                else if (_decisionTree.CheckWeight(_binOfPaper.ContentOfBin[index]) == "Paper")
                {
                    _garbageTruck.AddTrashToGarbageTruck("Paper", _binOfPaper.ContentOfBin[index]);
                }
                else
                {
                    _garbageTruck.AddTrashToGarbageTruck("Aluminium", _binOfPaper.ContentOfBin[index]);
                }
            }

            DisplayConentOfGarbageTruck(_garbageTruck);
            DisplayContentBin(_binOfPaper);
            Destroy(coll.gameObject);
        }

        if (coll.name.StartsWith("SmietnikPlastik"))
        {
            _binOfGlass = new BinOfGlass();

            while (_binOfGlass.AmountOfEmptySpaceOfBin())
            {
                _binOfGlass.AddTrashToBin(_trashGenerator.GetResult());
            }

            for (int index = 0; index < _binOfGlass.ContentOfBin.Length; index++)
            {
                if (_decisionTree.CheckWeight(_binOfGlass.ContentOfBin[index]) == "NextTest")
                {
                    if (_decisionTree.CheckAbilityOfCrushing(_binOfGlass.ContentOfBin[index]) == "NextTest")
                    {
                        if (_decisionTree.CheckAbsorptionOfHeat(_binOfGlass.ContentOfBin[index]) == "Paper")
                        {
                            _garbageTruck.AddTrashToGarbageTruck("Paper", _binOfGlass.ContentOfBin[index]);
                        }
                        else if (_decisionTree.CheckAbsorptionOfHeat(_binOfGlass.ContentOfBin[index]) == "Glass")
                        {
                            _garbageTruck.AddTrashToGarbageTruck("Glass", _binOfGlass.ContentOfBin[index]);
                        }
                        else
                        {
                            _garbageTruck.AddTrashToGarbageTruck("Aluminium", _binOfGlass.ContentOfBin[index]);
                        }
                    }
                    else if (_decisionTree.CheckAbilityOfCrushing(_binOfGlass.ContentOfBin[index]) == "Paper")
                    {
                        _garbageTruck.AddTrashToGarbageTruck("Paper", _binOfGlass.ContentOfBin[index]);
                    }
                    else
                    {
                        _garbageTruck.AddTrashToGarbageTruck("Aluminium", _binOfGlass.ContentOfBin[index]);
                    }
                }
                else if (_decisionTree.CheckWeight(_binOfGlass.ContentOfBin[index]) == "Paper")
                {
                    _garbageTruck.AddTrashToGarbageTruck("Paper", _binOfGlass.ContentOfBin[index]);
                }
                else
                {
                    _garbageTruck.AddTrashToGarbageTruck("Aluminium", _binOfGlass.ContentOfBin[index]);
                }
            }

            DisplayConentOfGarbageTruck(_garbageTruck);
            DisplayContentBin(_binOfGlass);
            Destroy(coll.gameObject);
        }
    }