dungeonanddeamon/DungeonAndDeamonScript/DungeonAndDemaonScript/GestionTerrain.cpp
2020-05-04 15:18:20 +02:00

118 lines
2.6 KiB
C++
Raw Blame History

#include "GestionTerrain.h"
#include <TileMap.hpp>
#include <ResourceLoader.hpp>
#include <Sprite.hpp>
#include <Texture.hpp>
using namespace godot;
GestionTerrain::GestionTerrain()
{
//Godot::print("Constructeur Terrain");
}
GestionTerrain::~GestionTerrain()
{
Array childrens = this->get_children();
for (int i = 0; i < childrens.size(); i++)
{
((Node*)childrens[i])->queue_free();
}
}
void GestionTerrain::_register_methods()
{
Godot::print("Register");
register_method("_process", &GestionTerrain::_process);
register_method("_init", &GestionTerrain::_init);
register_method("_ready", &GestionTerrain::_ready);
}
void GestionTerrain::_process()
{
}
void GestionTerrain::_init()
{
}
void GestionTerrain::_ready()
{
}
/**
* <summary>Permet l'ajout de murs</summary>
* <param name="posX">Position dans la largeur</param>
* <param name="posY">Position dans la hauteur</param>
* <param name="sizeX">Echelle en largeur</param>
* <param name="sizeY"Echelle en hauteur></param>
*/
void GestionTerrain::AjoutMur(float sizeX, float sizeY, float posX, float posY)
{
}
/**
* <summary>Permet l'ajout de sols</summary>
* <param name="posX">Position dans la largeur</param>
* <param name="posY">Position dans la hauteur</param>
* <param name="sizeX">Echelle en largeur</param>
* <param name="sizeY"Echelle en hauteur></param>
*/
void GestionTerrain::AjoutSolSolide(float sizeX, float sizeY, float posX, float posY)
{
Godot::print("Ajout sol solide");
Transform2D t;
Vector2 v;
Size2 s;
//setup de la size
s.x = sizeX;
s.y = sizeY;
v.x = posX;
v.y = posY;
t.set_origin(v);
t.scale(s);
StaticBody2D* m = StaticBody2D::_new();
Sprite* sprite = Sprite::_new();
Ref<Texture> texture_ptr = ResourceLoader::get_singleton()->load("res://sol.png");
sprite->set_texture(texture_ptr);
m->add_child(sprite);
m->set_transform(t);
add_child(m);
elems_terrains.push_back(m);
}
/**
* <summary>Permet l'ajout de sols traversables</summary>
* <param name="posX">Position dans la largeur</param>
* <param name="posY">Position dans la hauteur</param>
* <param name="sizeX">Echelle en largeur</param>
* <param name="sizeY"Echelle en hauteur></param>
*/
void GestionTerrain::AjoutSolTraversable(float sizeX, float sizeY, float posX, float posY)
{
}
/**
* <summary>Permet la suppression de tous les elements du terrains</summary>
*/
void GestionTerrain::SuppressionTout()
{
}
/**
* <summary>Permet une g<>n<EFBFBD>ration de base des <20>l<EFBFBD>ments du terrains</summary>
*/
void GestionTerrain::GenerationCarte()
{
AjoutSolSolide(1, 1, 85, 300);
AjoutSolSolide(1, 1, 255, 300);
AjoutSolSolide(1, 1, 340, 300);
AjoutSolSolide(1, 1, 425, 300);
}