mirror of
https://github.com/Relintai/rtile_map.git
synced 2024-11-13 18:17:20 +01:00
Added noise params to the tileset.
This commit is contained in:
parent
0e48188025
commit
6969ef8f00
@ -185,6 +185,7 @@ void RTileMap::set_tileset(const Ref<RTileSet> &p_tileset) {
|
|||||||
if (tile_set.is_valid()) {
|
if (tile_set.is_valid()) {
|
||||||
tile_set->connect("changed", this, "_recreate_quadrants");
|
tile_set->connect("changed", this, "_recreate_quadrants");
|
||||||
tile_set->add_change_receptor(this);
|
tile_set->add_change_receptor(this);
|
||||||
|
tile_set->setup_noise(noise);
|
||||||
} else {
|
} else {
|
||||||
clear();
|
clear();
|
||||||
}
|
}
|
||||||
@ -1900,8 +1901,6 @@ void RTileMap::_changed_callback(Object *p_changed, const char *p_prop) {
|
|||||||
|
|
||||||
RTileMap::RTileMap() {
|
RTileMap::RTileMap() {
|
||||||
noise.instance();
|
noise.instance();
|
||||||
//noise->set_seed(Math::rand());
|
|
||||||
noise->set_noise_type(FastNoise::TYPE_PERLIN);
|
|
||||||
|
|
||||||
rect_cache_dirty = true;
|
rect_cache_dirty = true;
|
||||||
used_size_cache_dirty = true;
|
used_size_cache_dirty = true;
|
||||||
|
18
tile_set.cpp
18
tile_set.cpp
@ -1087,6 +1087,18 @@ int RTileSet::get_last_unused_tile_id() const {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RTileSet::set_noise_params(const Ref<FastnoiseNoiseParams> &noise) {
|
||||||
|
_noise_params = noise;
|
||||||
|
}
|
||||||
|
Ref<FastnoiseNoiseParams> RTileSet::get_noise_params() {
|
||||||
|
return _noise_params;
|
||||||
|
}
|
||||||
|
void RTileSet::setup_noise(Ref<FastNoise> noise) {
|
||||||
|
if (_noise_params.is_valid()) {
|
||||||
|
_noise_params->setup_noise(noise);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int RTileSet::find_tile_by_name(const String &p_name) const {
|
int RTileSet::find_tile_by_name(const String &p_name) const {
|
||||||
for (Map<int, TileData>::Element *E = tile_map.front(); E; E = E->next()) {
|
for (Map<int, TileData>::Element *E = tile_map.front(); E; E = E->next()) {
|
||||||
if (p_name == E->get().name) {
|
if (p_name == E->get().name) {
|
||||||
@ -1170,6 +1182,12 @@ void RTileSet::_bind_methods() {
|
|||||||
ClassDB::bind_method(D_METHOD("find_tile_by_name", "name"), &RTileSet::find_tile_by_name);
|
ClassDB::bind_method(D_METHOD("find_tile_by_name", "name"), &RTileSet::find_tile_by_name);
|
||||||
ClassDB::bind_method(D_METHOD("get_tiles_ids"), &RTileSet::_get_tiles_ids);
|
ClassDB::bind_method(D_METHOD("get_tiles_ids"), &RTileSet::_get_tiles_ids);
|
||||||
|
|
||||||
|
ClassDB::bind_method(D_METHOD("set_noise_params", "noise"), &RTileSet::set_noise_params);
|
||||||
|
ClassDB::bind_method(D_METHOD("get_noise_params"), &RTileSet::get_noise_params);
|
||||||
|
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "noise", PROPERTY_HINT_RESOURCE_TYPE, "FastnoiseNoiseParams"), "set_noise_params", "get_noise_params");
|
||||||
|
|
||||||
|
ClassDB::bind_method(D_METHOD("setup_noise", "noise"), &RTileSet::setup_noise);
|
||||||
|
|
||||||
BIND_VMETHOD(MethodInfo(Variant::BOOL, "_is_tile_bound", PropertyInfo(Variant::INT, "drawn_id"), PropertyInfo(Variant::INT, "neighbor_id")));
|
BIND_VMETHOD(MethodInfo(Variant::BOOL, "_is_tile_bound", PropertyInfo(Variant::INT, "drawn_id"), PropertyInfo(Variant::INT, "neighbor_id")));
|
||||||
BIND_VMETHOD(MethodInfo(Variant::VECTOR2, "_forward_subtile_selection", PropertyInfo(Variant::INT, "autotile_id"), PropertyInfo(Variant::INT, "bitmask"), PropertyInfo(Variant::OBJECT, "tilemap", PROPERTY_HINT_NONE, "RTileMap"), PropertyInfo(Variant::VECTOR2, "tile_location")));
|
BIND_VMETHOD(MethodInfo(Variant::VECTOR2, "_forward_subtile_selection", PropertyInfo(Variant::INT, "autotile_id"), PropertyInfo(Variant::INT, "bitmask"), PropertyInfo(Variant::OBJECT, "tilemap", PROPERTY_HINT_NONE, "RTileMap"), PropertyInfo(Variant::VECTOR2, "tile_location")));
|
||||||
BIND_VMETHOD(MethodInfo(Variant::VECTOR2, "_forward_atlas_subtile_selection", PropertyInfo(Variant::INT, "atlastile_id"), PropertyInfo(Variant::OBJECT, "tilemap", PROPERTY_HINT_NONE, "RTileMap"), PropertyInfo(Variant::VECTOR2, "tile_location")));
|
BIND_VMETHOD(MethodInfo(Variant::VECTOR2, "_forward_atlas_subtile_selection", PropertyInfo(Variant::INT, "atlastile_id"), PropertyInfo(Variant::OBJECT, "tilemap", PROPERTY_HINT_NONE, "RTileMap"), PropertyInfo(Variant::VECTOR2, "tile_location")));
|
||||||
|
@ -38,6 +38,8 @@
|
|||||||
#include "scene/resources/convex_polygon_shape_2d.h"
|
#include "scene/resources/convex_polygon_shape_2d.h"
|
||||||
#include "scene/resources/shape_2d.h"
|
#include "scene/resources/shape_2d.h"
|
||||||
#include "scene/resources/texture.h"
|
#include "scene/resources/texture.h"
|
||||||
|
#include "../fastnoise/noise.h"
|
||||||
|
#include "../fastnoise/fastnoise_noise_params.h"
|
||||||
|
|
||||||
class RTileSet : public Resource {
|
class RTileSet : public Resource {
|
||||||
GDCLASS(RTileSet, Resource);
|
GDCLASS(RTileSet, Resource);
|
||||||
@ -136,6 +138,8 @@ private:
|
|||||||
|
|
||||||
Map<int, TileData> tile_map;
|
Map<int, TileData> tile_map;
|
||||||
|
|
||||||
|
Ref<FastnoiseNoiseParams> _noise_params;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool _set(const StringName &p_name, const Variant &p_value);
|
bool _set(const StringName &p_name, const Variant &p_value);
|
||||||
bool _get(const StringName &p_name, Variant &r_ret) const;
|
bool _get(const StringName &p_name, Variant &r_ret) const;
|
||||||
@ -259,6 +263,10 @@ public:
|
|||||||
|
|
||||||
int get_last_unused_tile_id() const;
|
int get_last_unused_tile_id() const;
|
||||||
|
|
||||||
|
void set_noise_params(const Ref<FastnoiseNoiseParams> &noise);
|
||||||
|
Ref<FastnoiseNoiseParams> get_noise_params();
|
||||||
|
void setup_noise(Ref<FastNoise> noise);
|
||||||
|
|
||||||
RTileSet();
|
RTileSet();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user