There are a blockade in my mind that disables me from seeing where I should use a class and where I should not.
When it comes down to it classes are a way to separate complex systems into simple parts that interact with each other. Try to create classes where otherwise you would be repeating yourself.
Right now the gauge was an Integer in the Plot class.
Does the gauge need to be a class? What would the advantage of turning it into a class be? These are the sort of things you always need to ask yourself.
- Game Engines are difficult to design. The separation of such a vaguely defined requirements is a complex process, read here: article on game engines
- Design is iterative and you'll refactor several times, don't be surprised by this.