init
This commit is contained in:
		
						commit
						b99855351d
					
				
					 434 changed files with 50357 additions and 0 deletions
				
			
		
							
								
								
									
										63
									
								
								addons/inkgd/runtime/extra/string_set.gd
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								addons/inkgd/runtime/extra/string_set.gd
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,63 @@ | |||
|  # ############################################################################ # | ||||
| # Copyright © 2015-2021 inkle Ltd. | ||||
| # Copyright © 2019-2022 Frédéric Maquin <fred@ephread.com> | ||||
| # All Rights Reserved | ||||
| # | ||||
| # This file is part of inkgd. | ||||
| # inkgd is licensed under the terms of the MIT license. | ||||
| # ############################################################################ # | ||||
| 
 | ||||
| # Using an dictionary as the backing structure for a not-too-bad, super-simple | ||||
| # set. The Ink runtime doesn't use C#'s HashSet full potential, so this trick | ||||
| # should be good enough for the use-case. | ||||
| 
 | ||||
| # This simple set is designed to hold Strings only. | ||||
| 
 | ||||
| extends RefCounted | ||||
| 
 | ||||
| class_name InkStringSet | ||||
| 
 | ||||
| # ############################################################################ # | ||||
| # Self-reference | ||||
| # ############################################################################ # | ||||
| 
 | ||||
| static func InkStringSet() -> GDScript: | ||||
| 	return load("res://addons/inkgd/runtime/extra/string_set.gd") as GDScript | ||||
| 
 | ||||
| # ############################################################################ # | ||||
| 
 | ||||
| var _dictionary: Dictionary = {} | ||||
| 
 | ||||
| # ############################################################################ # | ||||
| 
 | ||||
| func clear() -> void: | ||||
| 	_dictionary.clear() | ||||
| 
 | ||||
| func duplicate() -> InkStringSet: | ||||
| 	var set = InkStringSet().new() | ||||
| 	set._dictionary = _dictionary.duplicate() | ||||
| 	return set | ||||
| 
 | ||||
| func enumerate() -> Array: | ||||
| 	return _dictionary.keys() | ||||
| 
 | ||||
| func is_empty() -> bool: | ||||
| 	return _dictionary.is_empty() | ||||
| 
 | ||||
| func contains(element: String) -> bool: | ||||
| 	return _dictionary.has(element) | ||||
| 
 | ||||
| func contains_all(elements: Array) -> bool: | ||||
| 	return _dictionary.has_all(elements) | ||||
| 
 | ||||
| func size() -> int: | ||||
| 	return _dictionary.size() | ||||
| 
 | ||||
| func to_array() -> Array: | ||||
| 	return _dictionary.keys() | ||||
| 
 | ||||
| func append(value: String) -> void: | ||||
| 	_dictionary[value] = null | ||||
| 
 | ||||
| func erase(value: String) -> bool: | ||||
| 	return _dictionary.erase(value) | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Gerard Gascón
						Gerard Gascón