using System.Diagnostics; using System.Collections; using System.Collections.Generic; using System; using Godot; namespace Rokojori { public class MapList:Map> { public void ForEach( Action> callback ) { foreach ( var vk in this ) { callback( vk.Key, vk.Value ); } } public void Add( K key, V value ) { if ( ! ContainsKey( key ) ) { this[ key ] = new List(); } this[ key ].Add( value ); } public void Remove( K key, V value ) { if ( ! ContainsKey( key ) ) { return; } var list = this[ key ]; list.Remove( value ); if ( list.Count == 0 ) { Remove( key ); } } } }