|
@@ -45,6 +45,8 @@ bool TileSet::_set(const StringName &p_name, const Variant &p_value) {
|
|
|
tile_set_name(id, p_value);
|
|
|
else if (what == "texture")
|
|
|
tile_set_texture(id, p_value);
|
|
|
+ else if (what == "normal_map")
|
|
|
+ tile_set_normal_map(id, p_value);
|
|
|
else if (what == "tex_offset")
|
|
|
tile_set_texture_offset(id, p_value);
|
|
|
else if (what == "material")
|
|
@@ -89,6 +91,8 @@ bool TileSet::_get(const StringName &p_name, Variant &r_ret) const {
|
|
|
r_ret = tile_get_name(id);
|
|
|
else if (what == "texture")
|
|
|
r_ret = tile_get_texture(id);
|
|
|
+ else if (what == "normal_map")
|
|
|
+ r_ret = tile_get_normal_map(id);
|
|
|
else if (what == "tex_offset")
|
|
|
r_ret = tile_get_texture_offset(id);
|
|
|
else if (what == "material")
|
|
@@ -125,6 +129,7 @@ void TileSet::_get_property_list(List<PropertyInfo> *p_list) const {
|
|
|
String pre = itos(id) + "/";
|
|
|
p_list->push_back(PropertyInfo(Variant::STRING, pre + "name"));
|
|
|
p_list->push_back(PropertyInfo(Variant::OBJECT, pre + "texture", PROPERTY_HINT_RESOURCE_TYPE, "Texture"));
|
|
|
+ p_list->push_back(PropertyInfo(Variant::OBJECT, pre + "normal_map", PROPERTY_HINT_RESOURCE_TYPE, "Texture"));
|
|
|
p_list->push_back(PropertyInfo(Variant::VECTOR2, pre + "tex_offset"));
|
|
|
p_list->push_back(PropertyInfo(Variant::OBJECT, pre + "material", PROPERTY_HINT_RESOURCE_TYPE, "ShaderMaterial"));
|
|
|
p_list->push_back(PropertyInfo(Variant::COLOR, pre + "modulate"));
|
|
@@ -160,6 +165,19 @@ Ref<Texture> TileSet::tile_get_texture(int p_id) const {
|
|
|
return tile_map[p_id].texture;
|
|
|
}
|
|
|
|
|
|
+void TileSet::tile_set_normal_map(int p_id, const Ref<Texture> &p_normal_map) {
|
|
|
+
|
|
|
+ ERR_FAIL_COND(!tile_map.has(p_id));
|
|
|
+ tile_map[p_id].normal_map = p_normal_map;
|
|
|
+ emit_changed();
|
|
|
+}
|
|
|
+
|
|
|
+Ref<Texture> TileSet::tile_get_normal_map(int p_id) const {
|
|
|
+
|
|
|
+ ERR_FAIL_COND_V(!tile_map.has(p_id), Ref<Texture>());
|
|
|
+ return tile_map[p_id].normal_map;
|
|
|
+}
|
|
|
+
|
|
|
void TileSet::tile_set_material(int p_id, const Ref<ShaderMaterial> &p_material) {
|
|
|
|
|
|
ERR_FAIL_COND(!tile_map.has(p_id));
|
|
@@ -404,6 +422,8 @@ void TileSet::_bind_methods() {
|
|
|
ClassDB::bind_method(D_METHOD("tile_get_name", "id"), &TileSet::tile_get_name);
|
|
|
ClassDB::bind_method(D_METHOD("tile_set_texture", "id", "texture:Texture"), &TileSet::tile_set_texture);
|
|
|
ClassDB::bind_method(D_METHOD("tile_get_texture:Texture", "id"), &TileSet::tile_get_texture);
|
|
|
+ ClassDB::bind_method(D_METHOD("tile_set_normal_map", "id", "normal_map:Texture"), &TileSet::tile_set_normal_map);
|
|
|
+ ClassDB::bind_method(D_METHOD("tile_get_normal_map:Texture", "id"), &TileSet::tile_get_normal_map);
|
|
|
ClassDB::bind_method(D_METHOD("tile_set_material", "id", "material:ShaderMaterial"), &TileSet::tile_set_material);
|
|
|
ClassDB::bind_method(D_METHOD("tile_get_material:ShaderMaterial", "id"), &TileSet::tile_get_material);
|
|
|
ClassDB::bind_method(D_METHOD("tile_set_texture_offset", "id", "texture_offset"), &TileSet::tile_set_texture_offset);
|