#pragma once

namespace crepe {

class System {
public:
	static System & get_instance();
	virtual void update() = 0;

protected:
	System(){};
	virtual ~System(){};

private:
	// singleton
	System(const System &) = delete;
	System(System &&) = delete;
	System & operator=(const System &) = delete;
	System & operator=(System &&) = delete;
};

} // namespace crepe