Example #1
0
        void ActorDoubleClicked(KeyValuePair <string, ActorReference> kv)
        {
            using (var apd = new ActorPropertiesDialog())
            {
                var name = kv.Key;
                apd.AddRow("(Name)", apd.MakeEditorControl(typeof(string), () => name, v => name = (string)v));
                apd.AddRow("(Type)", apd.MakeEditorControl(typeof(string), () => kv.Value.Type, v => kv.Value.Type = (string)v));

                var objSaved = kv.Value.Save();

                // TODO: make this work properly
                foreach (var init in Program.Rules.Actors[kv.Value.Type].GetInitKeys())
                {
                    var initName = init.First;
                    apd.AddRow(initName,
                               apd.MakeEditorControl(init.Second,
                                                     () =>
                    {
                        var nodesDict = objSaved.ToDictionary();
                        return(nodesDict.ContainsKey(initName) ? nodesDict[initName].Value : null);
                    },
                                                     _ => { }));
                }

                apd.ShowDialog();

                // TODO: writeback
            }
        }
Example #2
0
		void ActorDoubleClicked(KeyValuePair<string, ActorReference> kv)
		{
			using (var apd = new ActorPropertiesDialog())
			{
				var name = kv.Key;
				apd.AddRow("(Name)", apd.MakeEditorControl(typeof(string), () => name, v => name = (string)v));
				apd.AddRow("(Type)", apd.MakeEditorControl(typeof(string), () => kv.Value.Type, v => kv.Value.Type = (string)v));

				var objSaved = kv.Value.Save();

				// TODO: make this work properly
				foreach (var init in Program.Rules.Actors[kv.Value.Type].GetInitKeys())
					apd.AddRow(init.First,
						apd.MakeEditorControl(init.Second,
							() =>
							{
								var nodesDict = objSaved.ToDictionary();
								return nodesDict.ContainsKey(init.First) ? nodesDict[init.First].Value : null;
							},
							_ => { }));

				apd.ShowDialog();

				// TODO: writeback
			}
		}