internal void Attach(Project project, Consideration editConsideration) { if (EditingConsideration != null) { EditingConsideration.DialogRebuildNeeded -= Rebuild; } EditingConsideration = editConsideration; EditingProject = project; EditingConsideration.DialogRebuildNeeded += Rebuild; NameEditWidget.Attach("Consideration", EditingConsideration, project); InputAxisDropdown.Items.Clear(); foreach (InputAxis axis in project.Inputs) { InputAxisDropdown.Items.Add(axis); } InputAxisDropdown.SelectedItem = EditingConsideration.Input; ResponseCurveEditor.AttachCurve(EditingConsideration.Curve, EditingProject); WrapInputCheckBox.Checked = EditingConsideration.WrapInput; }
internal void Attach(Project editedProject) { if (EditingProject != null) { EditingProject.DialogRebuildNeeded -= Rebuild; } EditingProject = editedProject; NameEditWidget.Attach("Project", EditingProject, EditingProject); EditingProject.DialogRebuildNeeded += Rebuild; int considerationCount = 0; foreach (var behavior in EditingProject.Behaviors) { considerationCount += behavior.Considerations.Count; } KnowledgeBaseEntriesLabel.Text = $"Knowledge Base Entries: {EditingProject.KB.Records.Count}"; InputAxesLabel.Text = $"Input Axes: {EditingProject.Inputs.Count}"; ConsiderationsLabel.Text = $"Considerations: {considerationCount}"; BehaviorsLabel.Text = $"Behaviors: {EditingProject.Behaviors.Count}"; BehaviorSetsLabel.Text = $"Behavior Sets: {EditingProject.BehaviorSets.Count}"; ArchetypesLabel.Text = $"Archetypes: {EditingProject.Archetypes.Count}"; ScenariosLabel.Text = $"Scenarios: {EditingProject.Scenarios.Count}"; }
internal void Attach(Archetype archetype, Project project) { EditArchetype = archetype; NameEditWidget.Attach("Archetype", EditArchetype); EditArchetype.DialogRebuildNeeded += Rebuild; EditProject = project; EnabledBehaviorSetsListBox.Items.Clear(); foreach (var behaviorSet in project.BehaviorSets) { EnabledBehaviorSetsListBox.Items.Add(behaviorSet, EditArchetype.BehaviorSets.Contains(behaviorSet)); } }
public void Attach(BehaviorSet set, Project project) { EditSet = set; EditProject = project; EditSet.DialogRebuildNeeded += Rebuild; NameEditWidget.Attach("Behavior Set", set); EnabledBehaviorsListBox.Items.Clear(); foreach (Behavior b in project.Behaviors) { EnabledBehaviorsListBox.Items.Add(b, EditSet.EnabledBehaviors.Contains(b)); } RefreshInputControls(); }
internal EditWidgetInputAxis(Project project, InputAxis axis) { InitializeComponent(); EditedAxis = axis; EditedProject = project; EditedAxis.DialogRebuildNeeded += Rebuild; NameEditWidget.Attach("Input Axis", axis); InputTypeComboBox.SelectedIndex = (int)axis.Origin; EditedAxis.ParametersChanged += (obj, args) => { GenerateParameterControls(); }; }
internal void Attach(Project project, Consideration editConsideration) { EditConsideration = editConsideration; EditProject = project; EditConsideration.DialogRebuildNeeded += Rebuild; NameEditWidget.Attach("Consideration", EditConsideration); InputAxisDropdown.Items.Clear(); foreach (InputAxis axis in project.Inputs) { InputAxisDropdown.Items.Add(axis); } InputAxisDropdown.SelectedItem = EditConsideration.Input; ResponseCurveEditor.AttachCurve(EditConsideration.Curve); }
internal void Attach(Scenario scenario, Project project) { if (Simulation != null) { Simulation.DialogRebuildNeeded -= Rebuild; Simulation.SimulationAdvance -= ScenarioAdvance; } Simulation = scenario; EditingProject = project; Simulation.DialogRebuildNeeded += Rebuild; Simulation.SimulationAdvance += ScenarioAdvance; NameEditWidget.Attach("Scenario", Simulation, EditingProject); RefreshAgentTab(); RefreshLocationTab(); AbsoluteTime = 0.0f; }
internal void Attach(Scenario scenario, Project project) { Simulation = scenario; EditProject = project; Simulation.DialogRebuildNeeded += Rebuild; NameEditWidget.Attach("Scenario", Simulation); RefreshAgentTab(); RefreshLocationTab(); AbsoluteTime = 0.0f; Simulation.SimulationAdvance += (e, args) => { RefreshAgentTab(); CreateLogDetails(args); AbsoluteTime += args.DeltaTime; }; }
internal void Attach(Behavior behavior) { foreach (Control ctl in ScoreLayoutPanel.Controls) { ctl.Dispose(); } ScoreLayoutPanel.Controls.Clear(); foreach (Control ctl in InputFlowPanel.Controls) { ctl.Dispose(); } InputFlowPanel.Controls.Clear(); EditBehavior = behavior; NameEditWidget.Attach("Behavior", EditBehavior); if (!string.IsNullOrEmpty(EditBehavior.Payload)) { CustomPayload.Text = EditBehavior.Payload; } else { CustomPayload.Text = ""; } EditBehavior.DialogRebuildNeeded += Rebuild; BehaviorWeightEditBox.Value = (decimal)EditBehavior.Weight; ActionComboBox.SelectedIndex = (int)EditBehavior.Action; CanTargetSelfCheckBox.Checked = EditBehavior.CanTargetSelf; CanTargetOthersCheckBox.Checked = EditBehavior.CanTargetOthers; var inputs = new Dictionary <InputAxis, List <InputAxis> >(); foreach (var consideration in EditBehavior.Considerations) { if (consideration.Input != null) { if (!inputs.ContainsKey(consideration.Input)) { inputs.Add(consideration.Input, new List <InputAxis>()); } var clamped = consideration.Input.Clamp(consideration.ParameterValues); inputs[consideration.Input].Add(clamped); ScoreLayoutPanel.Controls.Add(new EditWidgetConsiderationScore(consideration, this)); } } foreach (var kvp in inputs) { InputAxis union = null; foreach (var input in kvp.Value) { union = input.Union(union); } if (union == null) { continue; } var widget = new EditWidgetConsiderationInput(union, this); widget.Tag = kvp.Key; InputFlowPanel.Controls.Add(widget); } RefreshInputs(); }
internal void Rebuild() { NameEditWidget.Attach("Input Axis", EditingAxis, EditingProject); DialogRebuildNeeded?.Invoke(); }
internal void Rebuild() { NameEditWidget.Attach("Input Axis", EditedAxis); DialogRebuildNeeded?.Invoke(); }