private void DataGrid_AddingNewItem(object sender, AddingNewItemEventArgs e) { var itemList = (sender as DataGrid).ItemsSource as IList <UndertaleExtensionFunction>; int lastItem = itemList.Count; UndertaleExtensionFunction obj = new UndertaleExtensionFunction() { Name = (Application.Current.MainWindow as MainWindow).Data.Strings.MakeString($"new_extension_function_{lastItem}"), ExtName = (Application.Current.MainWindow as MainWindow).Data.Strings.MakeString($"new_extension_function_{lastItem}_ext"), RetType = UndertaleExtensionVarType.Double, Arguments = new UndertaleSimpleList <UndertaleExtensionFunctionArg>(), Kind = 11, // ??? ID = (Application.Current.MainWindow as MainWindow).Data.ExtensionFindLastId() }; e.NewItem = obj; }
public static UndertaleExtensionFunction DefineExtensionFunction(this IList <UndertaleExtensionFunction> extfuncs, IList <UndertaleFunction> funcs, IList <UndertaleString> strg, uint id, uint kind, string name, UndertaleExtensionVarType rettype, string extname, params UndertaleExtensionVarType[] args) { var func = new UndertaleExtensionFunction() { ID = id, Name = strg.MakeString(name), ExtName = strg.MakeString(extname), Kind = kind, RetType = rettype }; foreach (var a in args) { func.Arguments.Add(new UndertaleExtensionFunctionArg() { Type = a }); } extfuncs.Add(func); funcs.EnsureDefined(name, strg); return(func); }