mirror of
https://github.com/Relintai/terraman_2d.git
synced 2024-11-12 10:15:18 +01:00
Added texture properties to the libraries.
This commit is contained in:
parent
b4cd63847f
commit
40478dda74
@ -159,6 +159,29 @@ bool Terrain2DLibrary::_supports_caching() {
|
||||
return false;
|
||||
}
|
||||
|
||||
//Textures
|
||||
|
||||
Ref<Texture> Terrain2DLibrary::texture_get() {
|
||||
return _texture;
|
||||
}
|
||||
void Terrain2DLibrary::texture_set(const Ref<Texture> &value) {
|
||||
_texture = value;
|
||||
}
|
||||
|
||||
Ref<Texture> Terrain2DLibrary::liquid_texture_get() {
|
||||
return _liquid_texture;
|
||||
}
|
||||
void Terrain2DLibrary::liquid_texture_set(const Ref<Texture> &value) {
|
||||
_liquid_texture = value;
|
||||
}
|
||||
|
||||
Ref<Texture> Terrain2DLibrary::prop_texture_get() {
|
||||
return _prop_texture;
|
||||
}
|
||||
void Terrain2DLibrary::prop_texture_set(const Ref<Texture> &value) {
|
||||
_prop_texture = value;
|
||||
}
|
||||
|
||||
//Materials
|
||||
|
||||
void Terrain2DLibrary::material_cache_get_key(Ref<Terrain2DChunk> chunk) {
|
||||
@ -355,6 +378,18 @@ void Terrain2DLibrary::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("_supports_caching"), &Terrain2DLibrary::_supports_caching);
|
||||
ClassDB::bind_method(D_METHOD("supports_caching"), &Terrain2DLibrary::supports_caching);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("texture_get"), &Terrain2DLibrary::texture_get);
|
||||
ClassDB::bind_method(D_METHOD("texture_set", "value"), &Terrain2DLibrary::texture_set);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "texture", PROPERTY_HINT_RESOURCE_TYPE, "Texture"), "texture_set", "texture_get");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("liquid_texture_get"), &Terrain2DLibrary::liquid_texture_get);
|
||||
ClassDB::bind_method(D_METHOD("liquid_texture_set", "value"), &Terrain2DLibrary::liquid_texture_set);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "liquid_texture", PROPERTY_HINT_RESOURCE_TYPE, "Texture"), "liquid_texture_set", "liquid_texture_get");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("prop_texture_get"), &Terrain2DLibrary::prop_texture_get);
|
||||
ClassDB::bind_method(D_METHOD("prop_texture_set", "value"), &Terrain2DLibrary::prop_texture_set);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "prop_texture", PROPERTY_HINT_RESOURCE_TYPE, "Texture"), "prop_texture_set", "prop_texture_get");
|
||||
|
||||
#if VERSION_MAJOR < 4
|
||||
BIND_VMETHOD(MethodInfo("_setup_material_albedo", PropertyInfo(Variant::INT, "material_index"), PropertyInfo(Variant::OBJECT, "texture", PROPERTY_HINT_RESOURCE_TYPE, "Texture")));
|
||||
#else
|
||||
@ -421,7 +456,9 @@ void Terrain2DLibrary::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("_prop_material_cache_unref", "key"), &Terrain2DLibrary::_prop_material_cache_unref);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("prop_material_get"), &Terrain2DLibrary::prop_material_get);
|
||||
ClassDB::bind_method(D_METHOD("prop_material_set" "value"), &Terrain2DLibrary::prop_material_set);
|
||||
ClassDB::bind_method(D_METHOD("prop_material_set"
|
||||
"value"),
|
||||
&Terrain2DLibrary::prop_material_set);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "prop_material", PROPERTY_HINT_RESOURCE_TYPE, "Material"), "prop_material_set", "prop_material_get");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("terra_surface_get", "index"), &Terrain2DLibrary::terra_surface_get);
|
||||
|
@ -88,6 +88,15 @@ public:
|
||||
bool supports_caching();
|
||||
virtual bool _supports_caching();
|
||||
|
||||
Ref<Texture> texture_get();
|
||||
void texture_set(const Ref<Texture> &value);
|
||||
|
||||
Ref<Texture> liquid_texture_get();
|
||||
void liquid_texture_set(const Ref<Texture> &value);
|
||||
|
||||
Ref<Texture> prop_texture_get();
|
||||
void prop_texture_set(const Ref<Texture> &value);
|
||||
|
||||
void material_cache_get_key(Ref<Terrain2DChunk> chunk);
|
||||
virtual void _material_cache_get_key(Ref<Terrain2DChunk> chunk);
|
||||
Ref<Terrain2DMaterialCache> material_cache_get(const int key);
|
||||
@ -173,6 +182,11 @@ protected:
|
||||
static void _bind_methods();
|
||||
|
||||
bool _initialized;
|
||||
|
||||
Ref<Texture> _texture;
|
||||
Ref<Texture> _liquid_texture;
|
||||
Ref<Texture> _prop_texture;
|
||||
|
||||
Ref<Material> _material;
|
||||
Ref<Material> _liquid_material;
|
||||
Ref<Material> _prop_material;
|
||||
|
@ -256,6 +256,9 @@ void Terrain2DLibraryMerger::refresh_rects() {
|
||||
|
||||
Ref<Texture> tex = _packer->get_generated_texture(0);
|
||||
|
||||
texture_set(tex);
|
||||
liquid_texture_set(tex);
|
||||
|
||||
setup_material_albedo(MATERIAL_INDEX_TERRAIN, tex);
|
||||
setup_material_albedo(MATERIAL_INDEX_LIQUID, tex);
|
||||
}
|
||||
@ -280,6 +283,8 @@ void Terrain2DLibraryMerger::refresh_rects() {
|
||||
|
||||
Ref<Texture> tex = _prop_packer->get_generated_texture(0);
|
||||
|
||||
prop_texture_set(tex);
|
||||
|
||||
setup_material_albedo(MATERIAL_INDEX_PROP, tex);
|
||||
}
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user