Goal of this project:
The goal of this project was to create a phone that would generate its own phone-number which the user can call to. The phone needs to therefore check all the other phones in that level and make sure that the number it is trying to generate isn't already taken. To make things easier for the user, I also wanted to make sure that it would be easy to specify a phone-number if needed. In case there would be many phones to keep track of, I also wanted to add a phone-book so that the player can look up all the numbers.
Looking into ways of making this possible, I found using the map variables being the easiest apporach. A map is a variable that keeps track of other variables using keys.
In my case:
A phone numer (string) and a Phone (blueprint)
Worth to note is that this was a short project of 3 days.
My approach has been to generate numbers by appending strings, this way I can hardcode some numbers should I wish. In my example I hardcoded the first number to 5 to make the numbers feel like they belong to the same region.
The advantage with my method is that the user can easily add or remove phones and adjust the numbers to their liking.
Another advantage is that the way this blueprint is built, is that it is easy to expand on this project because of the modularity.
As far as limitations go, I can honestly not think of any. The things the blueprint cannot do is because I have not set up any function for it. Functions I think about is like VOIP (Voice in proximity) for example, but it could be set up should one want that.
One thing that could potentially be a thing is the find node which I assume loops through the entire list of numbers. If that list gets really long, it could maybe hit the CPU but further research is needed to confirm.