//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); } }