#pragma once

#include <raymath.h> // we shalln't worry ourselves with full raylib if we're going to end up networking this bad bitch
#include <raylib.h> // listening to le colibri nécrophile made me decide otherwise
#include <iostream>
#include <functional>
#include <vector>

namespace MPFW {
	namespace MPFW {
		namespace MF {

			typedef enum {
				UNKNOWN,
				PLAYERSTART,
				DECORATION
			} EntityType;

			class BaseEntity {
			public:
				EntityType entityType;
				Vector3 origin;
				virtual void Start(Map* map, int entityNum) = 0;
				virtual void Update(Map* map, int entityNum) = 0;
				virtual void Stop(Map* map, int entityNum) = 0;
				virtual void Destroy(Map* map, int entityNum) = 0;
			};

			
			class Map {
			public:

				Model terrain;

				
				Map();
				

				~Map();
			};
		}
	}
}