I think there might be ways to make this work right now for both of these use cases. However I think they are not pretty and we should think about improving the API here.
For the cursor
If your approach would be the current way to go:
Game.window().getRenderComponent().setCursor(null) should do the trick I think. Previously we've also thought about creating a new class for the cursor to improve the API and such a class could then have a visibility property.
I could imagine that your game has some kind of condition that controls whether or not all those things should be rendered. You could write a custom
EntityAnimationController that plays an empty animation when this condition is met. For that you could use the
AnimationRule concept. I think this might be a bit much to just temporarily hide an entity. Your suggestion sounds reasonable and I think we should extend the base
Entity class such that it has a visible property. However we need to be careful about this an check for all the places that might render an entity in the engine an include a check accordingly.
Maybe we can create a feature request tickets on GitHub for these changes to describe them some more.