mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-31 05:31:01 +00:00 
			
		
		
		
	TileSetEditor: Expose to the user OneWayCollision+Margin properties. Fixes #25817.
This commit is contained in:
		
							parent
							
								
									878950db16
								
							
						
					
					
						commit
						33406131c1
					
				
					 1 changed files with 40 additions and 0 deletions
				
			
		|  | @ -3118,6 +3118,24 @@ bool TilesetEditorContext::_set(const StringName &p_name, const Variant &p_value | |||
| 	} else if (name == "tileset_script") { | ||||
| 		tileset->set_script(p_value); | ||||
| 		return true; | ||||
| 	} else if (name == "selected_collision_one_way") { | ||||
| 		Vector<TileSet::ShapeData> sd = tileset->tile_get_shapes(tileset_editor->get_current_tile()); | ||||
| 		for (int index = 0; index < sd.size(); index++) { | ||||
| 			if (sd[index].shape == tileset_editor->edited_collision_shape) { | ||||
| 				tileset->tile_set_shape_one_way(tileset_editor->get_current_tile(), index, p_value); | ||||
| 				return true; | ||||
| 			} | ||||
| 		} | ||||
| 		return false; | ||||
| 	} else if (name == "selected_collision_one_way_margin") { | ||||
| 		Vector<TileSet::ShapeData> sd = tileset->tile_get_shapes(tileset_editor->get_current_tile()); | ||||
| 		for (int index = 0; index < sd.size(); index++) { | ||||
| 			if (sd[index].shape == tileset_editor->edited_collision_shape) { | ||||
| 				tileset->tile_set_shape_one_way_margin(tileset_editor->get_current_tile(), index, p_value); | ||||
| 				return true; | ||||
| 			} | ||||
| 		} | ||||
| 		return false; | ||||
| 	} | ||||
| 
 | ||||
| 	tileset_editor->err_dialog->set_text(TTR("This property can't be changed.")); | ||||
|  | @ -3160,6 +3178,24 @@ bool TilesetEditorContext::_get(const StringName &p_name, Variant &r_ret) const | |||
| 	} else if (name == "selected_collision") { | ||||
| 		r_ret = tileset_editor->edited_collision_shape; | ||||
| 		v = true; | ||||
| 	} else if (name == "selected_collision_one_way") { | ||||
| 		Vector<TileSet::ShapeData> sd = tileset->tile_get_shapes(tileset_editor->get_current_tile()); | ||||
| 		for (int index = 0; index < sd.size(); index++) { | ||||
| 			if (sd[index].shape == tileset_editor->edited_collision_shape) { | ||||
| 				r_ret = sd[index].one_way_collision; | ||||
| 				v = true; | ||||
| 				break; | ||||
| 			} | ||||
| 		} | ||||
| 	} else if (name == "selected_collision_one_way_margin") { | ||||
| 		Vector<TileSet::ShapeData> sd = tileset->tile_get_shapes(tileset_editor->get_current_tile()); | ||||
| 		for (int index = 0; index < sd.size(); index++) { | ||||
| 			if (sd[index].shape == tileset_editor->edited_collision_shape) { | ||||
| 				r_ret = sd[index].one_way_collision_margin; | ||||
| 				v = true; | ||||
| 				break; | ||||
| 			} | ||||
| 		} | ||||
| 	} else if (name == "selected_navigation") { | ||||
| 		r_ret = tileset_editor->edited_navigation_shape; | ||||
| 		v = true; | ||||
|  | @ -3206,6 +3242,10 @@ void TilesetEditorContext::_get_property_list(List<PropertyInfo> *p_list) const | |||
| 	} | ||||
| 	if (tileset_editor->edit_mode == TileSetEditor::EDITMODE_COLLISION && tileset_editor->edited_collision_shape.is_valid()) { | ||||
| 		p_list->push_back(PropertyInfo(Variant::OBJECT, "selected_collision", PROPERTY_HINT_RESOURCE_TYPE, tileset_editor->edited_collision_shape->get_class())); | ||||
| 		if (tileset_editor->edited_collision_shape.is_valid()) { | ||||
| 			p_list->push_back(PropertyInfo(Variant::BOOL, "selected_collision_one_way", PROPERTY_HINT_NONE)); | ||||
| 			p_list->push_back(PropertyInfo(Variant::REAL, "selected_collision_one_way_margin", PROPERTY_HINT_NONE)); | ||||
| 		} | ||||
| 	} | ||||
| 	if (tileset_editor->edit_mode == TileSetEditor::EDITMODE_NAVIGATION && tileset_editor->edited_navigation_shape.is_valid()) { | ||||
| 		p_list->push_back(PropertyInfo(Variant::OBJECT, "selected_navigation", PROPERTY_HINT_RESOURCE_TYPE, tileset_editor->edited_navigation_shape->get_class())); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Mariano Suligoy
						Mariano Suligoy