#include class Traffic: public Object { GDCLASS(Traffic, Object); protected: static void _bind_methods(); Vector > scenes; int state; List spawner_list; List::Element *spawner_e; float max_spawn_distance; float min_spawn_distance; Vector3 delete_distance, physics_distance; Ref rnd; float list_cooldown, spawn_cooldown; RID immediate, instance; Ref debug_mat; bool debug; void debug_traffic(); void control_traffic(); void vehicle_enable_physics(Spatial *obj); void vehicle_disable_physics(Spatial *obj); public: Traffic(); ~Traffic(); void add_traffic_vehicle(Ref scene); void remove_traffic_vehicle(Ref scene); void idle_runner(); inline void set_seed(int seed) { rnd->set_seed(seed); } inline int get_state() { return rnd->get_state(); } inline void set_state(int seed) { rnd->set_state(seed); } static Traffic *get_singleton(); static void create_singleton(); static void destroy_singleton(); };